是否可以使用基于两个条件的ng-show,以及我在这种情况下是否可以使用3个条件。我知道我可以使用函数或指令来做到这一点,但它是使用ng-repeat加载视图并将数据传播到动态生成的表单元素中的时候。在这一点上,将条件添加到ng显示会更容易,因为实际输入不会被标记为无效,并且表单本身仍然会提交为有效。当表单首次加载动态创建表单中的最后一个元素时,将显示错误消息,如同它无效,直到$ touched = true并且$ veiwValue更改。ng-show在角度上使用OR和NOT条件
为了简单起见,我NG秀看起来是这样的:
<div class="list-help-block" ng-messages="emails_form.email.$error" ng-show="emails_form.email.$dirty || emails_form.email.$invalid">
<div ng-messages-include="/app/views/messages.html" ></div>
</div>
提交表单时,这将显示在一个无效的条目,并在错误的错误消息的罚款。但是,它也会在窗体加载时显示错误消息(甚至不应该有错误)。并且只是最后一个输入动态添加到表单。
我想什么做的是这样的:
ng-show="emails_form.email.$dirty || emails_form.email.$invalid NOT mails_form.email.$pristine"
我甚至不知道如果这是可能的,如果有可能调用一个函数来解决验证,一旦观点是完全加载并且数据已被添加到模型中。有什么建议么?
这里的整个部分被用于此:
<div ng-repeat="emails in info.instructor.instructor_emails">
<ng-form name="emails_form" novalidate>
<div class="input-group">
<span class="input-group-label">
<span ng-show="info.instructor.instructor_emails.length==1">@</span>
<span ng-show="info.instructor.instructor_emails.length>=2"><a ng-click="updateRemoveEmail($index)"><i class="fi-x"></i></a></span>
</span>
<input ng-class="{ notvalid: submitted && emails_form.email.$invalid }"type="email" placeholder="[email protected]" name="email" ng-model="emails.email" ng-required="info.instructor.instructor_emails.length>=2"/>
</div>
<div class="list-help-block" ng-messages="emails_form.email.$error" ng-if="!emails_form.email.$pristine && (emails_form.email.$dirty || emails_form.email.$invalid)">
<div ng-messages-include="/app/views/messages.html" ></div>
</div>
这适用于第一次加载视图时,但在动态添加新输入时终止显示所需的错误。要查看我如何添加字段的基本思路,请查看[链接](http://plnkr.co/edit/0Xh0o82N1xQc7Qi5Mhfe?p=preview)也许这将有助于理解我是如何做到这一点的。 – OGZCoder
当用户按下“添加电子邮件”时,你期望什么? – developer033
我希望它添加一个需要验证并显示验证错误消息的字段,它们在添加到表单时也是$ pristine = true,所以ng-if如上所述,当这些字段是这些字段时,这些字段不会显示验证消息验证,添加和删除字段的基本代码可以在[plunker]找到(http://plnkr.co/edit/0Xh0o82N1xQc7Qi5Mhfe?p=preview)我会发布我的所有代码,但是说实话有点复杂 – OGZCoder