2013-07-08 4 views
3

AngularJS 앱에는 성인 수와 어린이 수에 대한 두 개의 드롭 다운이 있습니다. 아이들의 수가 성인 수보다 항상 낮거나 같은지 확인해야합니다.AngularJS 사용자 정의 지시문 - 다른 사람에 따라 입력

나는이를 검증하기 위해 맞춤 지시어를 만들었고 어린이 수를 바꿀 때 잘 작동하지만 어른 수를 변경할 때도 필요하다.

<select name="adults" ng-model="pax.adults" ng-options="v for v in options"> 
</select> 
<select name="children" ng-model="pax.children" ng-options="v for v in options" children> 

app.directive('children', function() { 
    return { 
     require: 'ngModel', 
     link: function (scope, elm, attrs, ctrl) { 
      var pax = scope.pax; 
      ctrl.$parsers.unshift(function (viewValue) { 
       ctrl.$setValidity('children', viewValue <= pax.adults); 
       return viewValue; 
      }); 
     } 
    }; 
}); 

예를 들어 성인 2 명과 어린이 3 명이 있습니다. 어린이 수가 잘못되었습니다. 자녀 수를 2로 변경하면 유효하지만 성인 수를 3으로 변경하면 어린이 검증이 해고되지 않습니다.

각도로 이루는 가장 좋은 방법은 무엇입니까? 여기

는 jsFiddle 내가 뭘하는지 설명한다 : http://jsfiddle.net/geZB5/

건배,

답변

1

좋아, 단지 성인 값에 시계를 추가하는 데 필요한 AngularJS google group에서 답 발견 :

 scope.$watch('pax.adults', function(value) { 
      ctrl.$setValidity('children', ctrl.$viewValue <= value); 
     }); 

해당 jsFiddle : http://jsfiddle.net/4vfBf/

관련 문제