2016-09-22 58 views
0

我有一个表单,我正在检查电子邮件是否已经存在。如果它已经存在,我显示json响应中的错误消息。这部分完成(这是我正在检查用户点击提交按钮时)。Angularjs表单验证,基于服务响应显示错误信息msg

如果电子邮件已存在,我将收到409错误。

我需要更新电子邮件输入字段。需要添加msg该电子邮件已存在。我使用的NG-秀=

<form name="personalInfo" role="form" autocomplete="off"> 
<div class="form-group"> 
    <input type="text" maxlength="11" class="form-control" name="usupiEmail" ng-model="usuAttributes.personalInfo.email" ng-focus="ShowPlaceholder('email')" /> 
    <label>Email ID</label> 

    <div class="error-message" ng-show="personalInfo.$submitted" ng-cloak> 
     Please verify your Email. 
    </div> 
</div> 
<button type="submit" class="btn-default" ng-click="usupiUpdateUser()">Next</button> 

我已经尝试了不同的方法也是 “personalInfo $提交”:

function checkWrongEmail (errorCode) { 
    if (errorCode === '409') { 
     return true; 
    } 
    return false; 
} 
+0

H你正在更新'personalInfo。$ submitted'(顺便说一下,你可能会误解它,因为它应该是'usuAttributes.personalInfo。$ submitted'? 当您从服务器收到409错误的响应时,可以使用“true”值更新此属性。这样,它会显示该错误的预期消息。 – NunoM

回答

0

首先,NG-应用程序指令添加到封闭DIV。没有它将无法工作。我试图手动把真/假,直到ng-app设置没有工作。 见JSFiddle。如果你从表单元素中删除ng-app,它将不起作用。而改变ng-show为true/false的指令会给出想要的结果。

您指定的NG-模式是:

usuAttributes.personalInfo.email 

但在NG-显示表达式为:

personalInfo.$submitted 

你应该检查是否是这个范围的模型 同时检查在立即关闭的输入元素上定义模型的事实不会导致访问变量的问题(因此,错误消息div有权访问它吗?)