2017-05-26 43 views
1

我遇到一個問題,驗證消息傳遞似乎沒有爲下面的輸入發射。此輸入的外觀完全取決於其他輸入(即只顯示他們是否仍在學校)。我注意到的是,當我刪除關於此輸入顯示的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

如果ng-if斷言爲false,它會從DOM整個<div>。使用ng-show,以便對這些輸入字段的驗證仍然發生。此外,您還需要關閉ng-if/ng-show<div>標記,以便它不APLY到嵌套「的錯誤消息格」,像這樣:

<div ng-show="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> 
<div class="ng-hide" validation-message field="schoolLeavingYear">Please select your school leaving year.</div> 
+1

乾杯,改爲'NG-show'和它的工作。如果我願意從DOM中移除'div',是否有其他解決方案? – ediblecode

+0

@jumpingcode如果你確實希望它被移除,但仍然希望它被包含在驗證中,那麼無論何時評估div,我都會建議在控制器腳本中設置一個變量。這樣,即使div從DOM中被移除,如果在移除之前的驗證未得到滿足,仍然可以顯示錯誤消息。另外檢查我的「編輯」的div嵌套。 – Anton

+1

謝謝!當時間限制消失時我會接受 – ediblecode

相關問題