我有:
<span class="inlineBlock fa fa-question-circle"
ng-show="!(validateEmail(ahs.forms.modal.modalUserEmail)=='OK')"
title="{{ validateEmail(ahs.forms.modal.modalUserEmail) }}">{{ validateEmail(ahs.forms.modal.modalUserEmail) }}</span>
validateEmail的值设置如下:
$scope.validateEmail = function (error) {
if (error.$error) {
if (error.$error.required) return "Required";
if (error.$error.email) return "Email Invalid";
}
return "OK";
}
但即使它返回OK,该节目仍然会显示fa-question-circle图标,旁边有单词OK。请注意,我已经尝试了几种不同的括号组合,我总是看到“必填”,“电子邮件无效”或“确定”等字样。我从来没有看到这个词没有显示。
答案 0 :(得分:1)
我唯一的猜测是inlineBlock
类覆盖了display
CSS属性,删除该类后是否还会发生?
答案 1 :(得分:1)
您的代码运行良好&#34;按原样#34;如果ahs.forms.modal.modalUserEmail
是它应该是什么,但如果它不是,则失败,并且JSFiddle来证明它。
我复制/粘贴了您的代码,并添加了您从问题中遗漏的所需对象。
您是否检查过控制台是否有错误?如果例如ahs.forms.modal.modalUserEmail
恰好是null
,则Angular会感到非常沮丧。
答案 2 :(得分:0)
现在我知道发生了什么。您应该将输入传递给validateEmail函数,以检查它是否包含有效值。所以,试试这个:
<form name="form" >
<input type="email" name="emailField" ng-model="ahs.forms.modal.modalUserEmail"/>
<span class="inlineBlock fa fa-question-circle" ng-show="validateEmail(form.emailField) != 'OK'"></span>
</form>