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

时间:2015-01-08 13:56:57

标签: knockout.js

我是KnockoutJS的新人,我有一个'简单'的问题 - 每次点击checkboxlabel我都会在控制台中看到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>

1 个答案:

答案 0 :(得分:1)

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