gpt4 book ai didi

javascript - ko.computed() 不评估顶级对象( knockout 映射)

转载 作者:行者123 更新时间:2023-11-30 18:11:35 27 4
gpt4 key购买 nike

我在页面上有两个值,一个是 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/

我想知道是什么导致了这个问题,是我的代码/结构还是别的什么?(我并没有试图通过这种方式解决什么特别的问题,我只是注意到了这种奇怪的行为,这让我觉得我可能做错了一些根本性的事情)

最佳答案

您的第二个 .computed 字段未绑定(bind)任何内容,它永远不会被调用。

我没有建议的修复,因为这根本不是您应该做的。您的第一个 Code Pattern 是获取对派生自某些其他属性的变量的读取访问权限的预期方式。

关于javascript - ko.computed() 不评估顶级对象( knockout 映射),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14442272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com