angularjs - Angular ng-show 未使用 ng-message 标签执行
问题描述
不知道我在这里做错了什么。我想在用户提交表单后显示一条 ng-message。但是,在呈现表单时会显示该消息。ng-show 似乎没有进行评估。
我在表达式中打印了该字段,当我打开表单时它是错误的。另外,我将其更改为 ng-hide 但我有同样的问题。
你能看看吗..
<div class="small-12">
<label>first name
<span class="field-error"> *</span>
</label>
<input name="firstName"
type="text"
maxlength="25"
ng-disabled="isSubmitting" required
ng-model="candidate.firstName"
ng-class="{error:isFormSubmitted && contactForm.firstName.$error.required}" />
<div ng-messages="forms.contactForm.firstName.$error"
class="errorFormLabel" role='alert'>
<div ng-message="required"
ng-show="isFormSubmitted">This is a required field {{isFormSubmitted}}
</div>
</div>
</div>
解决方案
将ng-messages
其视为一个switch
子句,您可以将ng-show
// ng-hide
insideng-message
指令嵌套但不能一起使用
例如:
<div ng-messages="forms.contactForm.firstName.$error"
class="errorFormLabel" role='alert'>
<div ng-message="required">
<span ng-show="isFormSubmitted">This is a required field {{isFormSubmitted}}</span>
</div>
</div>
</div>
如果你不想要一个额外的元素:<span>
, try ng-if
,基本上ng-if
优先级高于任何其他 angularjs 指令,ng-message
如果表达式不是正数,它将强制从 DOM 树中删除指令。
<div ng-message="required"
ng-if="isFormSubmitted">This is a required field {{isFormSubmitted}}
</div>
推荐阅读
- android - 在分屏的第一个窗口中启动外部应用程序
- node.js - 如何将图像插入 CouchDB
- php - 为什么我的 post 方法在 Laravel 中不起作用?
- vue.js - VueJS 模板中的元素引用 self
- python - 在 Python Socket 上通过 TCP 将 txt 文件发送到服务器
- python-3.x - python从给定位置的字符串中删除字符串
- node.js - NestJS - 每个模块使用多个 MongoDB 连接
- sublimetext3 - 启动时自动加载 Sublime 工作区
- java - Quarkus 开发模式下的 Maven 多模块项目
- ruby-on-rails - 有没有办法根据特定顺序对 Rails 中的国家/地区进行排序?