AngularJs 服务器端验证

AngularJs Server side validation

我正在使用 angularjs 提交一个非常简单的表单... 我必须在我的表格中插入一个数字代码。代码必须验证服务器端,调用外部服务。当我得到承诺时,我想检查代码是否正确。 如果代码不正确,我想在文本框中设置一个红色边框并显示一条消息...这里是 html

<input name="code" type="text" style="width:155px;" data-ng-model="Codice" 
    data-ng-required="true" data-ng-pattern="/^(\d){22}$/" data-ng-model-options="{ updateOn: 'mousedown blur' }" />

<span data-ng-show="myform.code.$error.pattern" class="error">Codice non valido</span>

现在我让你看看我在控制器中做了什么

if (response.Result == "1")
{
   myform.code.$error.pattern = true;
}

这样我只看到消息,但文本框的边框仍然是黑色...所以我试过:

if (response.Result == "1")
{
   myform.code.$setValidity('mismatch',false);
}

但是这样一来,即使我修改了代码,模型仍然是"not valid",所以我不能再post了...

有什么解决办法吗? 谢谢

在您的 html 中创建一个 span 用于自定义验证

 <span class="help-block" ng-show="myform.name.$error.ntValidName">Not valid name</span>

然后在控制器中这样设置有效性,如果无效则

 myform.name.$setValidity("ntValidName", false);

这样您就可以创建自定义验证