1

示例代码:

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' 属性不会更新。

任何想法为什么?

4

1 回答 1

5

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

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

于 2012-07-02T07:32:19.343 回答