假设:
<input type="password" ng-model="ctrl.fields.password" ng-minlength="8" />
{{ ctrl.fields.password.length }}
在您达到验证要求的最小长度之前,不会显示任何内容。也就是说,如果密码的长度小于8,则模型的值为null
。删除ng-minlength
可以解决问题。
这是非常意外的行为,因为该字段的有效性应该与访问模型的值无关。
有没有办法在Angular 1.5中解决这个问题?我想在用户输入时向用户显示密码的长度,但由于该值为null
,直到它至少为8个字符,因此我无法使用。
答案 0 :(得分:0)
这是Angular $validators
的工作方式:如果validatiion失败,则值不会从视图传递到模型,模型会重置。
这里介绍了Angular内置验证的工作原理:
http://blog.thoughtram.io/angularjs/2015/01/11/exploring-angular-1.3-validators-pipeline.html
如果你不喜欢这样,angular-ui-validate是一个很好的包,它以无中断的方式工作(即模型总是更新,你决定如何处理验证结果)。 / p>