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

「アクティビティ」が ArrayProxy に設定されている場合、「historicalSection」計算プロパティが計算されます。ただし、「アクティビティ」の ArrayProxy が更新される (つまり、長さが変更される) 場合、「historicalSection」プロパティは更新されません。

理由はありますか?

4

1 に答える 1

5

で計算されたプロパティをバインドするとactivites、 に新しい値を設定したときに更新されるactivitiesため、初期化時に、 を呼び出したときにのみ更新されますset('activities', newArrayProxy)

activities.@eachorをバインドされたプロパティとして使用activities.lengthして、長さの変化を観察できます

于 2012-07-02T07:32:19.343 に答える