我有以下代码:
ko.bindingHandlers.disablingOption = {
init: function(element, valueAccessor) {
alert(valueAccessor());
},
update: function(element, valueAccessor) {
alert(valueAccessor());
}
};
// Some other code
var option = $(element);
var tempObserver = ko.observable(true);
ko.applyBindingsToNode(option, {
disablingOption : tempObserver
});
tempObserver(false);
//
我的意图是看到三个警报框,前两个说“true”
第三个说“false”,但是我没有得到第三个方框。
有任何想法吗?
最佳答案
调用valueAccessor()
仅会返回tempObserver
。为了创建依赖关系,您实际上需要访问tempObserver
的值。
一种安全的方法是调用ko.utils.unwrapObservable
,例如:
alert(ko.utils.unwrapObservable(valueAccessor()));
ko.utils.unwrapObservable
将正确处理返回可观察值或不可观察值的值。http://jsfiddle.net/rniemeyer/C7Gt5/
关于javascript - 与可观察的applyBindingsToNode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8408017/