AngularJS使自定义表单field.error行为像“必需”

时间:2013-08-23 08:22:01

标签: angularjs

我在发送时在客户端和我的API中验证我的表单。 如果我的后端验证失败,我想在客户端验证失败时显示相同的消息。为此,我在后端的字段失败时使用以下代码。

#Template
<span class="registration-error" ng-show="accPasswordForm.password.$error.required">*</span>
<span class="registration-error" ng-show="accPasswordForm.password.$error.authfail">Authentication failed</span>
<input ng-model="changePasswordForm.password" name="password" type="password" authfail required/>

#Controller ( I set this if the password field throws a validation error in my API )
scope.myForm.password.$setValidity('authfail', false);

这很好用,但问题是当我再次开始输入密码字段时,我希望将此$ setValidity设置为true。与所需错误的行为相同。我已经尝试过不同的方式来观察现场输入,但我似乎总是无法让它工作。

有人能够给我一个提示/代码片段,告诉我如何才能让这个工作变得有效吗?

1 个答案:

答案 0 :(得分:0)

或者你可以这样做:

#Template
<span class="registration-error" ng-show="accPasswordForm.password.$error.required">*</span>
<span class="registration-error" ng-show="server_error_auth || accPasswordForm.password.$error.authfail">Authentication failed</span>
<input ng-model="changePasswordForm.password" ng-change="server_error_auth=false" name="password" type="password" authfail required/>

#Controller ( I set this if the password field throws a validation error in my API )
$scope.server_error_auth = true;