我試圖獲得dropdownchecklist jquery插件與ko一起工作。我已經連接了自定義綁定處理程序,但下拉菜單不會填充選項。請檢查我的小提琴:http://jsfiddle.net/amitava82/wMH8J/11/讓dropdownchecklist與knockoutJS一起工作
感謝你的幫助。謝謝!
我試圖獲得dropdownchecklist jquery插件與ko一起工作。我已經連接了自定義綁定處理程序,但下拉菜單不會填充選項。請檢查我的小提琴:http://jsfiddle.net/amitava82/wMH8J/11/讓dropdownchecklist與knockoutJS一起工作
感謝你的幫助。謝謝!
這是因爲你以前結合KnockoutJS創建下拉。這個下拉菜單是如何工作的?它創建額外的div和跨越其複製內容選擇創造好看的列表。之後綁定應用和他們修改選擇(因爲他們應該),但下拉不更新,因爲這個庫是一種靜態的,即它複製的內容僅在通話時選擇。
我已經更新了你的jsFiddle所以你可以看到臨時的解決辦法。我的意思是它現在起作用,綁定應用之前創建下拉菜單。唯一的問題是,更改options
字段viewModel
不會影響下拉菜單。你可能需要做的是使用subscribe method。您必須監視對options
字段的更改,如果它們發生,則必須重新創建下拉列表。至少這是一個簡單的方法。
@freakish答案對大多數靜態內容的工作,但由於使用的模板,例如if
或foreach
綁定,或者您需要支持基礎數據的更新,如更多的複選框選擇什麼動態「突然」變得可用,它會不行。
a really simple $.button
bindingapply
的一個例子,它可以用來包裝更簡單的jQuery調用。這是一個簡單的問題,即向controls
添加更多成員以使其可用於綁定。
與jQuery下拉檢查單的情況是有點棘手,但是,因爲你明明想使用內置的options
處理程序,但你需要運行$.dropdownchecklist
的options
處理程序運行後,它會創建的DOM元素的jQuery依賴於取決於。 By wrapping the built in options
handler,我們總是在正確的上下文中調用。
在我的使用經驗(我們的項目採用的約10-15自定義綁定),你會平均約10-20實際JS的線。如果你開始膨脹成100行,我覺得重構和重新思考是個好主意。我希望這有助於一些:-)我已經在工作中的一個主要的UI實施項目中使用了Knockout幾個月,我真的學到了很多東西,我對這個東西感到驚訝。
我一般發現爲各種jQuery庫創建Knockout綁定包裝對我們的項目非常有效。他們通常很簡單。 – Svend
謝謝,您的解決方案確實解決了這個問題。我肯定想知道@Svend提到的包裝技術。這將幫助我理解如何使用KO處理不同的JQuery插件。我會接受答案。 – SamSerious