在 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/
干杯,