簡體   English   中英

灰燼.get沒有返回正確的值

[英]Ember .get doesn't return correct value

所以當我使用時,我有這個余燼對象“陣容”

lineup.get('stations').length = 396

但是這是錯誤的,如果我檢查該對象並使用_data

lineup._data.stations.length = 429

這是正確的,

排隊站是從這樣的余燼數據請求有效載荷操縱中獲得的

if (payload.stations) {
     payload.stations = payload.stations.map(function(s) {
         s.logo = s.logoFilename ? 'http://cdn.tvpassport.com/image/station/100x100/'+s.logoFilename : null;
         delete s.logoFilename;
         return Ember.Object.create(s);
      });
}

有任何想法嗎?

Ember.get有時會返回ObjectProxy或和ArrayProxy 有時,在余燼數據中,您還可以獲取PromiseObjectPromiseArray

如果您處於計算屬性中,則可以直接訪問數據,但是絕對不要在.get之后使用普通的JS點號。 始終執行obj.get('full.path.to.prop')而永遠不要obj.get('full').get('path').get('to').get('prop')obj.get('full').path.to.prop

如果您不在計算屬性中(例如,您在執行操作) .thenPromiseObjectPromiseArray上使用PromiseArray


因此,對於計算屬性:

len: Ember.computed('lineup', {
  get() {
    return this.get('lineup.stations.length');
  }
})

並采取行動:

alertLen() {
  this.get('lineup.stations').then(stations => alert(stations.get('length'));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM