我有以下代码:
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” 第三个说“假”,但我从未收到第三个盒子。 有任何想法吗?
最佳答案
调用valueAccessor()
只会返回tempObserver
。为了创建依赖项,您实际上需要访问 tempObserver
的值。
执行此操作的安全方法是调用 ko.utils.unwrapObservable
,如下所示:
alert(ko.utils.unwrapObservable(valueAccessor()));
ko.utils.unwrapObservable
将正确处理可观察或不可观察的返回值。
关于javascript - applyBindingsToNode 与 observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8408017/