2012-02-14 1 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() 메서드를 사용해야 캐시 된 버전을 사용할지 또는 실제로 속성을 계산할지 결정할 수 있습니다.

관련 문제