ngChange
directive要求ngModel
存在,但直接綁定到我的控制器中的字段很困難,因爲邏輯稍微複雜一點。如何在沒有ng模型的情況下使用ng-change
我有一個調查問卷,其中包含從數據庫中檢索的問題。每個問題可以有一個答案已經和我可以檢索與對調查方法的調用被查看:
vm.survey.GetCurrentAnswerIDForQuestionID(q.ID)
更新時,這是困難的,因爲如果答案ISN直接綁定到屬性目前我需要創建一個實體來存儲它,如果它存在,那麼我改變它或刪除它(當用戶選擇空選項時)。
所以我覺得我需要調用一個方法。就像這樣:
vm.survey.SetCurrentAnswerIDForQuestionID(q.ID, answerid)
我可以使用這個標記顯示正確的選擇列表:
<select ng-init="answerid = vm.survey.GetCurrentAnswerIDForQuestionID(q.ID)">
<option value=""></option>
<option ng-repeat="va in q.ValidAnswers | orderBy:'SortOrder'"
ng-selected="va.AnswerID === q.currentAnswer"
value="{{va.AnswerID}}">
{{va.Text}}
</option>
</select>
現在我想調用一個方法來設置的答案,當用戶更改答案。事情是這樣的:
<select
ng-init="answerid = vm.survey.GetCurrentAnswerIDForQuestionID(q.ID)"
ng-model="answerid"
ng-change="vm.survey.SetCurrentAnswerIDForQuestionID(q.ID, answerid)">
...etc
但是,這並不工作 - 正確的項目不再被選中,當我查看該頁面
該模型在加載時或選擇後不正確? – tymeJV