свойство sproutcore (@each) не обновляется - PullRequest
0 голосов
/ 14 февраля 2012

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

1 Ответ

0 голосов
/ 14 февраля 2012

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

...