<select data-bind="options: $data.answers, optionsText: function(item) { return item.text }, value: selectedAnswer, optionsCaption: 'Choose...'"></select>
我希望做的是設置每個option
元素的class
屬性一些手段,使我最終:
<option class="someValue">12345</option>
這可以在KnockoutJS?我很難找到解決方案。
編輯:
我剛剛試過foreach
結合,由阿爾喬姆的建議,這是非常接近的工作,因爲我想要的。但有一個問題。
在Question
對象存在是簽約的SelectedAnswer
觀察到的一個功能:
this.selectedAnswer.subscribe(function (answer) {}
當我使用foreach
綁定,subscribe()
打完,一次爲每一個問題(應該不火直到我選擇了答案,我認爲這是因爲「選擇...」選項現在沒有顯示)。
對於foreach
綁定,我怎樣才能將默認文本設置回「選擇...」,並停止selectedAnswer.subscribe()
發射,直到用戶選擇了一個項目,而不是在列表填充時。
編輯:
好的這是我做了這個。
在KO viewmodel類中,我有一個布爾值bindingFinished
,我在selectedAnswer.subscribe()
裏面檢查。如果false
那麼我們只是從函數返回;如果屬實,則照常進行。
此外,我添加一個默認的「選擇」選項的答案,通過在陣列的開始添加一個新的Answer
。最終的結果是,只有在用戶選擇了一個選項後,纔會在數據綁定時執行訂閱功能。
非常感謝Artem的幫助。
查看更新的答案。 –