フォームの検証ディレクティブを作成しました。基本的に、別のフィールドのデータに基づいてフィールド値を検証します。
それは完璧に動作します:-)
私の問題は、検証が実行された後に他のフィールドが変更された場合、検証が再度実行されないことです。
var myApp = angular.module('myApp', [])
.directive('validateInteger', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
ctrl.$parsers.unshift(function(viewValue) {
var int1val = scope.int1;
scope.int2valid = (viewValue > int1val) ? "valid" : undefined;
if (scope.int2valid == "valid") {
ctrl.$setValidity('higher', true);
return viewValue;
} else {
ctrl.$setValidity('higher', false);
return undefined;
}
});
}
};
});
jsfiddle: http://jsfiddle.net/hanspc/vCFFQ/