Tôi đã tạo một chỉ thị xác nhận cho biểu mẫu của mình. Về cơ bản nó xác nhận giá trị trường dựa trên dữ liệu từ trường khác.Làm cách nào để buộc chỉ thị xác thực góc chạy?
Nó hoạt động hoàn hảo :-)
Vấn đề của tôi là nếu trường khác thay đổi sau khi xác thực được thực hiện, xác thực sẽ không chạy lại.
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/
Điều này sẽ không khắc phục sự cố "xác thực", nhưng bạn có thể ẩn div bằng 'ng-hide =" int2> int1 "', đặt toán tử '>' ngay trong biểu thức ẩn. – rGil