我最近發現這個偉大的組件 - >Knockout-Kendo.js。使用具有Knockout-Kendo.js的ViewModel的當前屬性值
我用它來處理一些kendoComboBox的行爲。
與視圖模型的同步完美地工作。
我想要聽取控件的更改以根據當前選定的值執行某些操作。
我沒有看到任何可綁定在'data-bind'屬性中的屬性來偵聽更改,但我知道在內部,knockout-kendo組件監聽更改,這就是viewmodel能夠通過同步與控制。
如果我嘗試聆聽控件的valueChange事件,問題是我的事件處理程序在viewmodel之前捕獲,並且在我的事件處理程序中運行時,我只具有使用viewmodel的控件的前一個值。
查看組件中的綁定配置。我的理解是我可以使用telerik控件的'enabled','search','data','value'和其他任何暴露的屬性。最好是在data-bind屬性中定義一個屬性'change',並在我的viewmodel中鏈接一個eventhandler,並確保我的eventhandler會在knockout-kendo組件的內部事件處理程序之後被調用。
createBinding({
name: "kendoAutoComplete",
events: {
change: VALUE,
open: {
writeTo: ISOPEN,
value: true
},
close: {
writeTo: ISOPEN,
value: false
}
},
watch: {
enabled: ENABLE,
search: [SEARCH, CLOSE],
data: function(value) {
ko.kendo.setDataSource(this, value);
},
value: VALUE
}
});
我知道我可以嘗試修改事件綁定的順序,以確保我的eventhandler必須在viewmodel同步後調用,但我認爲這是一個非常糟糕的做法。
有人有一個想法,我可以如何解決這個問題與優雅?
+1非常感謝Jeroen。通過'訂閱',我可以做到我想要的。在Knockout網站的文檔部分閱讀時,答案就在我的臉上。 – Samuel