2012-02-14 9 views
0

私は基本的なtodoアプリケーションを分析しています。sproutcoreプロパティ(@each)が更新されていません

StatsView(メインのtodos.jsおよびtodos.handlebarsから)を削除すると、todoListControllerremainingメソッド(プロパティ)が自動的に更新されなくなるのはなぜですか?

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と私はバインディングを削除したため、これがあると、想像することができます。しかし、それは@eachが変更に目をつけているということではないでしょうか?

答えて

0

SproutCoreはできるだけ少ない作業を行うように最適化します。したがって、StatsViewを削除すると、.remainingプロパティを気にするものが削除されました。何も求めていないので、SproutCoreは計算しません。このため、プロパティにアクセスするときに常にget()set()のメソッドを使用して、キャッシュされたバージョンを使用するか実際にプロパティを計算するかを決める必要があります。

関連する問題