我在页面上有两个值,一个是 ko.computed 属性,另一个是 ko.observable,两者都应该获得相同的值,但以两种不同的方式(使用 ko.mapping.fromJS 加载基础数据):
//#1
self.count = ko.computed(function () {
return self.pages().length;
});
//#2
self.count2 = ko.observable(0);
ko.computed(function () {
//looks like this is not fiering
self.count2(self.pages().length);
});
在我的情况下,#1 效果很好,但#2 根本无法触发。以同样的方式,如果我使用 self.page.subscribe(),我也会得到想要的结果。
这个问题还有第二部分,如果我创建了一些嵌套对象,那么情况 #1 和 #2 对嵌套对象按预期工作,但问题仍然存在于顶层/父对象上。
并且听到是演示这种奇怪行为的示例 - http://jsfiddle.net/rrgnK/2/
我想知道是什么导致了这个问题,是我的代码/结构还是其他什么?(我试图以这种方式解决没有特别的问题,我只是注意到这种奇怪的行为,这让我认为我可能在做一些根本错误的事情)