0
我需要進行自定義綁定,如value
綁定。這裏是我的代碼:如何防止在knockout.js自定義綁定中更新和值更改回調的遞歸調用?
ko.bindingHandlers.myValue= {
init: function(element, valueAccessor) {
$(element).change(function() {
var value = valueAccessor();
value($(this).val());
});
},
update: function(element, valueAccessor) {
var value = valueAccessor();
$(element).val(ko.utils.unwrapObservable(value))
}
};
現在,如果我改變觀察到的價值,update
將被調用,該元素的值將被改變,所以在init
描述的change
回調將被執行。
它將更改value
,因此將調用update
回調等。我對嗎?
如果是,我該如何防止這種遞歸?
如果不是,爲什麼?
你試試你的綁定? 'update'會被調用,但只要用'.val'設置一個元素的值不會觸發'.change'事件。你想用這個完成什麼? – 2013-02-17 16:37:51
@AndrewWhitaker,你確定?如果你確定的話,寫作答案。不,我沒有試過:) – shift66 2013-02-17 16:50:45
[看看這個例子](http://jsfiddle.net/CCNtR/13/)。沒有無限的遞歸發生。 – 2013-02-17 17:16:33