And*_*ray 24 javascript validation angularjs
在Angular.js中对自定义客户端验证进行一些基础研究时,我正在阅读ngModel.NgModelController文档,并发现了以下隐藏线:
$ setValidity(validationErrorKey,isValid); 更改有效性状态,并通知表单.
可以在$ parsers/$ formatters中调用此方法.但是,如果可能,请使用旨在自动调用此方法的ngModel.$ validators管道.
几个小时后,许多Google(和StackOverflow!)搜索后来,我在任何ngModel.$validators地方都找不到任何关于此管道的信息.所有自定义验证示例都使用如下$parsers/$formatters设置:
link: function (scope, elem, attr, ctrl) {
// Other necessary logic...
ctrl.$parsers.push(function () {
// Validation logic
ctrl.$setValidity('validation-type', true);
});
ctrl.$formatters.push(function () {
// Validation logic
ctrl.$setValidity('validation-type', true);
});
},
Run Code Online (Sandbox Code Playgroud)
问题: Angular文档指出上述代码不是最佳实践,并且这个神秘的ngModel.$validatorspipline是正确的方法.我没有找到关于这种更好的做法的任何信息.如何使用ngModel.$validators正确实现此自定义客户端验证?
rob*_*rob 22
$validators是Angular 1.3的新手.这篇博文给出了如何使用它们的一个很好的解释:http://www.yearofmoo.com/2014/09/taming-forms-in-angularjs-1-3.html#the-validators-pipeline
基本思想是在函数上添加一个函数ngModel.$validators,返回boolean指定模型是否有效的函数.
然后,您可以像引用任何内置验证器一样在HTML中引用该验证器.例如
<div ng-if="myForm.myField.$error.myValidator">
some error message here
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10001 次 |
| 最近记录: |