2012-02-14 3 views
0

Я анализирую основное приложение todo.sproutcore свойство (@each) не обновляется

Почему, когда я удалить 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 я удалил связывание. Но не должно быть, что @each следит за изменениями?

ответ

0

SproutCore оптимизирует работу как можно меньше. Итак, когда вы удалили StatsView, вы удалили вещь, которая заботится о собственности .remaining. Поскольку ничего не просит об этом, SproutCore не вычисляет его. Вот почему вы всегда должны использовать методы get() и set() при доступе к свойствам, чтобы они могли решить, использовать ли кешированную версию или фактически вычислить свойство.

Смежные вопросы