KnockoutJS - 检查和计算功能的复选框

KnockoutJS - checkbox on check and computed function

我是 KnockoutJS 的新手,我有一个 'simple' 问题 - 每次我点击 checkboxlabel 我都会看到 1控制台。但是 changeCheck 'knows' 应该在什么时候调用它呢?

只是 return self.check(); 通知 knockoutJScheck 更改时调用 changeCheck 吗?我不明白。有人可以为我解释一下吗?

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>

您自己尝试回答问题是正确的。 Knockout 将分析您计算的可观察对象,以确定访问了哪些其他可观察对象。所有这些可观察对象都将被标记为计算可观察对象的依赖项(换句话说,计算可观察对象将订阅可观察对象的更改)。每当一个 observable 发生变化时,它会通知所有订阅者更改的值。对于计算的可观察量,这意味着将进行重新计算。很多我刚刚输入的内容,以及很多其他有用的信息都在 Knockout 关于计算可观测值的文档中提供,找到 here.