观察整个ArrayProxy

Raj*_*jat 1 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()
});
Run Code Online (Sandbox Code Playgroud)

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

有什么想法吗?

sly*_*7_7 5

当你绑定计算属性时activites,它意味着它将在你设置一个新值时更新activities,所以在初始时,并且只在调用时set('activities', newArrayProxy).

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