我正在面對Knockout的下列問題。我有一個列表,其中包含一些值。這一切都很好,我得到我的下拉項目就好了。它還具有點擊功能,可以記錄正在點擊的內容的值。這與console.log正常工作,但它絕對拒絕更新我設置的KO可觀察值。如果我將<ul>
中的HTML中的<a>
行移動到頁面的不同部分,它只會在其位於<ul>
內部時被擰緊,它的工作原理沒有問題。同樣,如果我告訴Javascript更新「dropdownSelectedA3」值與某些東西,如果不同的按鈕被點擊。我在想這是在錯誤的地方或東西看,但我似乎無法弄清楚這一點。Knockout JS在foreach內拋出「不是函數」錯誤
也試過:
- 更改 「this.dropdownSelectedA3(answerUserA3)」 到 「viewmodel.dropdownSelectedA3(answerUserA3)」,但出現同樣的問題
- 刪除$父也不能解決問題,遺憾的是
有人可能會指出我的錯誤嗎?
我的代碼:
相關HTML:
<ul class="dropdown-menu" aria-labelledby="dropdownMenu3UL" data-bind="foreach: dropdownAnswersAssignment3">
<li>
<a data-bind="text: $data, click: $parent.logAnswerA3" href="#"></a>
</li>
</ul>
相關JS(在我的視圖模型):
this.dropdownAnswersAssignment3 = ko.observableArray([C1M5OptionsActive.A3.option1, C1M5OptionsActive.A3.option2, C1M5OptionsActive.A3.option3, C1M5OptionsActive.A3.option4]);
var answerUserA3
this.dropdownSelectedA3 = ko.observable("...");
this.logAnswerA3 = function(answer) {
answerUserA3 = answer;
this.dropdownSelectedA3(answerUserA3)
}
哪裏是'dropdownAnswersAssignment3'在你的模型?你能在這裏展示 –
Appologies,更新。 –
範圍問題,'logAnswerA3'函數中的'this'引用函數本身,因此與該函數外部的'this'不同。 – GillesC