angularjs中的指令顺序形式验证

时间:2017-02-21 13:54:04

标签: javascript angularjs validation

我有一个自定义指令验证字段,并在同一字段中我已应用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;
                    }                  
                }
            }
        };
    })

0 个答案:

没有答案