2012-07-02 40 views
1

示例代码:观察整个ArrayProxy

var Day = Ember.Object.extend({ 
    date:null, 
    activities:null, // is set to an Em.ArrayProxy in instantiation 
    historicalSection:function(){ 
    return this.get('activities').filterProperty('inHistoricalSection', true); 
    }.property('activities').cacheable() 
}); 

当 '活动' 被设置为ArrayProxy, 'historicalSection' 计算的属性,都会计算。但是,当'activities'处的ArrayProxy被更新时(即其长度发生变化),'historicalSection'属性不会更新。

任何想法,为什么?

回答

5

当您在activites上绑定计算属性时,这意味着它将在您为activities设置新值时更新,因此在初始时和仅在调用set('activities', newArrayProxy)时才更新。

您可以使用[email protected]activities.length为绑定属性,观察长度变化

+1

非常感谢。 activities.length为我工作。 – Rajat