$ setValidity不实时更新$ valid标志

时间:2013-10-01 21:36:30

标签: javascript validation angularjs

我正在使用使用指令实现的自定义表单输入验证程序。在指令中,验证事件绑定到输入的blur事件。因此,在模糊时,它使用$ setValidity设置模型的有效性。但是,在再次修改模型的值之前,不会更新$ valid状态。换句话说,$ valid状态总是落后于一个状态。

更具体地说,我正在使用backlift.com提供的Angular Stripe帮助程序库。这是我所指的代码块:Line 613 here.

在视图中,我有div块:

<div class="field-box error" ng-show="myForm.field.$dirty && myForm.field.$invalid">
    <div class="alert-msg"><i class="icon-remove-sign"></i> Some friendly message</div>
</div>

知道为什么在执行on-blur事件后不会更新$ valid / $ invalid属性?仅供参考,_validate方法正确执行其工作,并在预期时使用正确的值调用$ setValidity()。

提前致谢。

1 个答案:

答案 0 :(得分:0)

scope.$digest将解决您的问题。无论何时在指令中集成非Angular插件,请确保执行范围。$ digest以保持范围更新。