sproutcore属性(@each)没有更新

时间:2012-02-14 08:06:55

标签: javascript binding each sproutcore

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

为什么当我删除StatsView(来自主todos.js和todos.handlebars)时,remaining的{​​{1}}方法(属性)会停止更新?

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关注变化吗?

1 个答案:

答案 0 :(得分:0)

SproutCore优化尽可能少的工作。因此,当您删除StatsView时,您删除了关注.remaining属性的内容。由于没有任何要求,SproutCore不会计算它。这就是为什么在访问属性时应始终使用get()set()方法,以便他们可以决定是使用缓存版本还是实际计算属性。