Angular:当ng-minlength不满意时,无法检索ng-model的值

时间:2016-06-02 18:46:46

标签: javascript angularjs

假设:

<input type="password" ng-model="ctrl.fields.password" ng-minlength="8" />

{{ ctrl.fields.password.length }}

在您达到验证要求的最小长度之前,不会显示任何内容。也就是说,如果密码的长度小于8,则模型的值为null。删除ng-minlength可以解决问题。

这是非常意外的行为,因为该字段的有效性应该与访问模型的值无关。

有没有办法在Angular 1.5中解决这个问题?我想在用户输入时向用户显示密码的长度,但由于该值为null,直到它至少为8个字符,因此我无法使用。

1 个答案:

答案 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>