Angular没有在输入上显示错误验证,其可见性取决于另一个输入

时间:2017-05-26 11:06:47

标签: angularjs

我遇到了一个问题,即验证消息传递似乎没有针对以下输入触发。此输入的外观完全取决于另一个输入(即仅显示他们是否还在学校)。我注意到的是,当我删除关于此输入显示的ng-if时,验证消息很好并且会立即发生。但是,当ng-if出现时,只有在满足ng-if时所选的值无效时,它才会显示该消息。有什么想法吗?

HTML

<div ng-if="showSchoolLeavingYear()">
    <label for="ddlSchoolLeavingYear">School leaving year:</label>
    <select name="schoolLeavingYear" id="ddlSchoolLeavingYear" ng-model="session.form.schoolLeavingYear" required> 
        <option value="">- Please select -</option>
        <option value="2017">2017</option>
        <option value="2018">2018</option>
    </select>
    <div class="ng-hide" validation-message field="schoolLeavingYear">Please select your school leaving year.</div>
</div>

1 个答案:

答案 0 :(得分:1)

如果ng-if断言为false,则会从DOM中删除整个<div>。使用ng-show以便仍然对这些输入字段进行验证。此外,您需要关闭<div>的{​​{1}}标记,以便它不适合嵌套的“错误消息div”,如下所示:

ng-if/ng-show