我有一条指令,使用正则表达式验证输入值。
现在,我使用$ watch检查输入值是否已更改,但是由于性能原因,我想尝试另一种方法。
scope.$watch(attrs.ngModel, function (inputValue) {
formatter(inputValue);
});
格式化程序功能仅通过正则表达式检查inputvalue是否有效,并调用$ setValidity()
我尝试使用$ parsers,但发现更改输入值时,该值未直接验证,如下所示:
modelCtrl.$parsers.push(formatter);
if (scope[attrs.ngModel] && scope[attrs.ngModel] !== '') {
formatter(scope[attrs.ngModel]);
}
输入值更改后,有什么方法可以立即验证输入?
最佳答案
如果您具有用于验证的自定义指令,请使用$ asyncvalidators
Angular official guide
Good article on how to use asyncvalidators
ng-pattern可直接用于标记的正则表达式验证
关于javascript - $ watch的替代品,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36477785/