我有这个非常简单的绑定:
ko.bindingHandlers.chosen = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
console.log("INIT");
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
console.log("IT WORKS!");
}
};
在选择中使用:
<select data-bind="
options: Options,
chosen: Options
"></select>
Options
声明为:
this.Options = ko.observableArray(opt1);
并在必要时进行更新,如下所示:
this.Options(newValues);
但是,"IT WORKS"
只记录一次(在呈现选择列表时)并且永远不会再次记录。看到这个 jsfiddle。尝试按下“重新加载”按钮:数组已更新,选择列表重新呈现(耶!)但未调用自定义更新函数(不!)。我什至试图强迫.valueHasMutated
但没有成功。
我需要更新功能才能正常工作。为什么没有发生这种情况?