$ watch

时间:2016-04-07 13:33:23

标签: javascript angularjs

我有一个使用正则表达式验证inputvalue的指令。 现在我使用$ watch来检查输入值是否已更改,但由于性能原因,我想尝试其他方法。

scope.$watch(attrs.ngModel, function (inputValue) {
     formatter(inputValue);
});

formatter函数只是通过正则表达式检查inputvalue是否有效并调用$ setValidity()

我尝试使用$解析器但是我发现在更改输入值时没有直接验证该值,如下所示:

modelCtrl.$parsers.push(formatter);
    if (scope[attrs.ngModel] && scope[attrs.ngModel] !== '') {
        formatter(scope[attrs.ngModel]);
    }

输入值更改后,有没有办法立即验证输入?

1 个答案:

答案 0 :(得分:1)

  1. 如果您有验证的自定义指令,请使用$ asyncvalidators
  2. Angular official guide

    Good article on how to use asyncvalidators

    1. ng-pattern可以用于标记
    2. 的正则表达式验证