【发布时间】:2015-07-15 03:44:43
【问题描述】:
我正在使用 ng-messages 显示组件的各种验证消息,如下所示:
<ng-messages for="myForm.myField.$error" ng-if="myForm.myField.$touched">
<ng-message when="required">My Field required</ng-message>
<ng-message when="foo">Foo Message</ng-message>
<ng-message when="backend">{{myForm.backendMessages.myField}}</ng-message>
</ng-messages>
在处理来自服务器的错误消息期间,我将自定义错误消息添加到组件中:
myField.$setValidity("backend", false);
myField.$setTouched(true); // So ng-messages is shown
就将消息放在我想要的位置而言,这工作正常,但这显然将表单标记为“无效”,这意味着当客户端验证被触发时,我不能使用简单的逻辑来禁用表单提交。
有没有一种“幸运”的方式可以添加到myField.$error 而不会实际使组件和表单无效?或者,一旦用户弄脏表单,我是否必须重置整个“有效”标志,这会使消息消失?如果是后者,最好的方法是什么?
使用 Angular 1.4.1 FWIW。
【问题讨论】:
-
困惑...你到底在找什么?
-
理想的方式是让事情进入 $error 而不必将字段标记为无效,这种方式不会在客户端验证运行后立即喷出。
标签: javascript angularjs forms validation