[英]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
。 有時,在余燼數據中,您還可以獲取PromiseObject
或PromiseArray
。
如果您處於計算屬性中,則可以直接訪問數據,但是絕對不要在.get之后使用普通的JS點號。 始終執行obj.get('full.path.to.prop')
而永遠不要obj.get('full').get('path').get('to').get('prop')
或obj.get('full').path.to.prop
。
如果您不在計算屬性中(例如,您在執行操作) .then
在PromiseObject
或PromiseArray
上使用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.