我是KnockoutJS
的新人,我有一个'简单'的问题 - 每次点击checkbox
或label
我都会在控制台中看到1
。但是,changeCheck
'如何'知道'何时应该被调用?
只有return self.check();
通知knockoutJS
在更改changeCheck
时调用check
?我不明白。有人可以帮我解释一下吗?
self.check = ko.observable(false);
self.changeCheck = ko.computed(function () {
console.log(1);
return self.check();
});
<input type="checkbox" id="myCB" data-bind="checked: check" />
<label for="myCB">lorem</label>
答案 0 :(得分:1)
你自己试图回答这个问题是正确的。 Knockout将分析您计算的observable以确定访问其他可观察对象。所有这些observable都将被标记为计算的observable的依赖项(换句话说,计算的observable将订阅observable的更改)。每当观察到变化时,它将通知任何订户已更改的值。对于计算的可观察量,这意味着将进行重新计算。我刚刚输入的很多东西,以及Knockout关于计算的observables的文档中提供了很多其他有用的信息,找到了here。