1
我想突出顯示observable被更新時綁定到observable的元素,但是當observable的綁定被inited時沒有。Knockout:關於可觀察更新的高亮元素
我試圖用一個定義綁定:
<div data-bind="updateHighlighting: name, text: name"></div>
<input data-bind="value: name" />
ko.bindingHandlers.updateHighlighting = {
update: function(element, valueAccessor) {
$(element).effect("highlight", 2000);
}
};
var vm = {
name: ko.observable("Diego")
};
ko.applyBindings(vm);
但更新回調不僅運行時可觀察到的更新,而且在自定義綁定的初始化。所以在綁定初始化時會突出顯示一個不需要的元素。
我可以知道,在更新回調中,如果我在綁定的初始狀態下執行下面的操作?
ko.bindingHandlers.updateHighlighting = {
update: function(element, valueAccessor) {
if(!isInit)
$(element).effect("highlight", 2000);
}
};
完美,這正是我一直在尋找的。 –
只有我不得不添加「ko.utils.unwrapObservable(valueAccessor());」在更新回調的開始部分讓它起作用。 –
@DiegoPlutino - 是的,你會想要通過展開observable來獲取任何你想觸發更新的依賴。 –