2017-03-14 2 views
0

코드의 비트에 따라 : 나 설정할 필요조건부 ngPattern

<label class="checkbox-label"> 
     <input name="radio1" type="radio" 
       ng-model="myModel.radio" 
       required ng-required="true" 
       value="1"> 
    </label> 
    <label class="checkbox-label"> 
     <input name="radio1" type="radio" 
       ng-model="myModel.radio" 
       required ng-required="true" 
       value="2"> 
    </label> 

    <input type="number" name="result" class="form-control input-sm" ng-model="myModel.result" 
     required ng-required="true" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" step="0.1" min="0" max="100"> 

ng-pattern & stepradio1 선택에 기초하여 소수 첫째 자리 (0.1) 또는 소수 둘째 자리 (0.01)을 수용하기

누구든지이 문제에 접근하는 방법을 알고 있습니까?

UPDATE 나는이 작업을 수행 할 수있는 지침을 만들었습니다,하지만 검증 당신은 동적으로 작동 steppattern에 대한 사용자 정의 구현을 작성해야

app.directive('stepChange', function() { 
    return { 
     link: function link(scope, element, attr) { 
      element.bind('change', function() { 
       var el = angular.element(attr['target']); 
       el.attr('step', attr['step']); 
       el.attr('pattern', attr['pattern']); 
       el.val(attr['val']); 
       el.trigger(); 
      }); 
     } 
    } 
}); 

답변

0

이 일의 핵심은 다음과 같습니다

  1. 라디오에 사용되는 모델에 시계를 적용합니다.
  2. 변경 단계 위의 시계의 값과 스텝 로직/plunkr에서 자신의 가치를 신청 해주세요

$scope.$watch('myModel.radio',function(a,b){ 
    debugger 
    if(a ==1){ 
     $scope.step = "0.1"; 
    }else if(a==2){ 
     $scope.step = "0.01"; 
    } 
    }); 

변수 범위를 사용하여 다시 할당 할 수 있습니다.

https://plnkr.co/edit/BKTS5jDTRoRQomNzHSt2?p=preview

당신은 또한 NG 패턴 동적 (단계 등) 같은 방법

<input type="number" name="result" class="form-control input-sm" 
    ng-model="myModel.result" required ng-required="true" 
    ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" step={{step}} min="0" max="100"> 
+0

업데이 트를 참조하십시오 할 수 있습니다,이 패턴 유효성 검사를 변경하지 않습니다. – Dementic