将后端错误添加到myFormItem。$ error而不会使表单失效?

时间:2015-07-15 03:44:44

标签: javascript angularjs forms validation

我正在使用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。

0 个答案:

没有答案