1

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

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

在视图中,我有这样的 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() 在预期时使用正确的值调用。

提前致谢。

4

1 回答 1

0

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

于 2013-10-01T22:38:36.937 回答