我有一个自定义指令验证字段,并在同一字段中我已应用ng-pattern检查输入是否为数字。我面临的问题是自定义指令总是在ng-pattern之前运行。
所需行为 - NG-图案 - >的CustomValidator
现在它 - customValidator-> NG-图案
我没有在customValidator上指定任何优先级,也不想。 有没有办法可以强制这个自定义验证器在ng-pattern之后运行。
<input type=text ng-pattern="/^[1-9][0-9]*$/" customValidator>
.directive('customValidator', function () {
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, elem, attrs, ngModel) {
ngModel.$parsers.unshift(validate);
scope.$watch(ngModel.$viewValue, function () {
ngModel.$setViewValue(ngModel.$viewValue);
});
function validate(value) {
// validation code
if (validation) {
ngModel.$setValidity('custom', true);
return value;
}
else {
ngModel.$setValidity('custom', false);
return false;
}
}
}
};
})