使用简单验证器和asyncValidator验证时如何避免闪烁效应?

时间:2015-11-11 12:36:24

标签: angularjs validation asynchronous

我有以下输入:

<input id="firstname" class="form-control"
   name="firstname" ng-model="event.firstname" autocomplete="off"
   required validation-event-firstname ng-model-options="{ updateOn: 'default blur', debounce: { default: 300, blur: 0 } }">

validation-event-firstname是一个调用rester服务器的自定义异步验证器。我需要该字段为required

以下是显示错误的代码:

<ng-messages for="form.firstname.$error" role="alert" ng-show="(form.firstname.$dirty || form.firstname.$touched) && form.firstname.$invalid">
    <ng-message when="required" class="error-message">required</ng-message>
    <ng-message when="my-custom-validation" class="error-message">my custom validation</ng-message>
</ng-messages>

问题是:当我刷新页面并在字段中放入一些内容时,错误消息“required”显示为0.1s。此行为不依赖于字段的内容:如果我放置了无效的服务器值(由my-custom-validation触发),我可以看到错误消息(它在0.1秒后消失)。

当我删除指令validation-event-firstname时,没有问题。我认为这个问题不依赖于异步验证器的代码,因为我尝试使用我的业务代码并使用简单的$timeout,效果仍然相同。

先谢谢你的帮助。

0 个答案:

没有答案