我使用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。
发布于 2015-07-15 11:52:44
我还没有使用过ng-messages组件,但听起来似乎可以使用novalidate属性。
<form method="POST" action="xyz" novalidate> ... </form>这样,组件就会进行验证,而浏览器不会触发本机验证错误
https://stackoverflow.com/questions/31421137
复制相似问题