观察整个ArrayProxy

时间:2012-07-02 07:17:40

标签: ember.js

示例代码:

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()
});

当'activities'设置为ArrayProxy时,会计算'historicalSection'计算属性。但是,当'activities'中的ArrayProxy更新时(即它的长度发生变化),'historicalSection'属性不会更新。

任何想法为什么?

1 个答案:

答案 0 :(得分:5)

activites上绑定计算属性时,这意味着在为activities设置新值时会更新它,因此在初始时,并且仅在调用set('activities', newArrayProxy)

您可以使用activities.@eachactivities.length作为绑定属性来观察长度变化