【发布时间】:2012-12-07 16:49:25
【问题描述】:
假设你有以下js:
var vm = {
objects: ko.observable([]),
objectCount: ko.computed(function(){
return vm && vm.objects().length;
}),
add: function() {
var current = vm.objects();
current.push({});
console.log('current is', current);
vm.objects(current);
console.log("should recalculate here", vm.objectCount());
}
};
还有下面的html:
<ul data-bind="foreach: objects">
<li>
Object: <span data-bind="text: $index"></span>
</li>
</ul>
<button data-bind="click: add">Add Object</button>
<p>
Total number of objects:
<span data-bind="text: objectCount"></span>
</p>
我的理解from reading the documentation 是因为在我添加一个对象后我调用了 objectCount(),它应该重新计算它的依赖关系。相反,它似乎甚至从未执行过该函数,只运行一次!
【问题讨论】:
标签: knockout.js computed-observable