我正在使用ng-messages显示组件的各种验证消息,如下所示:
ObjectMapper
在处理来自服务器的错误消息期间,我将自定义错误消息添加到组件:
<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
而无需实际使组件和表单无效的“祝福”方式?或者,一旦用户弄脏表单,我必须重置整个“有效”标志,这会使消息消失吗?如果是后者,那么最好的方法是什么?
使用Angular 1.4.1 FWIW。