gpt4 book ai didi

javascript - sproutcore 属性(@each)未更新

转载 作者:行者123 更新时间:2023-12-03 13:38:45 24 4
gpt4 key购买 nike

我正在分析基本的todo应用。

为什么当我删除 StatsView 时(来自主要的 todos.js 和来自 todos.handlebars)remaining todoListController 的方法(属性)停止自我更新?

Todos.todoListController = SC.ArrayController.create({
...
remaining: function() {
console.log('remaining');//doesn't apear in the console
return this.filterProperty('isDone', false).get('length');
}.property('@each.isDone').cacheable(),
...
});

我可以想象,这是因为 StatsView我删除了绑定(bind)。但不应该是 @each密切关注变化?

最佳答案

SproutCore 进行优化以尽可能少地完成工作。所以,当你删除 StatsView 时,你删除了关心 .remaining 的东西。属性(property)。由于没有任何要求,SproutCore 不会计算它。这就是为什么您应该始终使用 get()set()访问属性时的方法,以便他们可以决定是使用缓存版本还是实际计算属性。

关于javascript - sproutcore 属性(@each)未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9273539/

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