我有一個簡單的綁定測試。初始化和更新在頁面打開時被調用。但是,如果我通過調用一個函數來手動更新objervable,則更新方法不會在我的綁定處理程序中調用。Knockout自定義綁定不觸發更新爲可觀察
它以selectedQueue設置爲2開始。單擊該按鈕正確選擇select中的第3個元素。但是我的綁定處理程序沒有被調用這個改變。
有什麼簡單的我失蹤了嗎?
<select id="productGroup" name="productGroupen" data-bind="value:selectedQueue, treeMenu: selectedQueue">
<option value="1" selected="selected">Group 1</option>
<option value="2">Group 2</option>
<option value="3">Group 3</option>
</select>
<div data-bind="text: selectedQueue"></div>
<button data-bind="click:setQueue">Set to 3</button>
<script src="~/Scripts/knockout-3.4.0.js"></script>
<script>
ko.bindingHandlers.treeMenu = {
init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
alert("init")
x = valueAccessor();
},
update: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
alert("update");
x = valueAccessor();
}
};
var Model = function() {
self = this;
this.selectedQueue = ko.observable(2);
this.setQueue = function() {
this.selectedQueue(3);
}
}
$(document).ready(function() {
ko.applyBindings(new Model());
});
</script>