我以爲我用reduce()
計算出了這個數字,但其實我需要在每條記錄上彙總多個屬性,所以每當我返回一個對象時,我遇到的問題是previousValue
是一個Ember對象,並且我返回一個普通對象,所以它在第一個循環中工作正常,但第二次通過,a
不再是Ember對象,所以我得到一個錯誤說a.get is not a function
。示例代碼:Ember.js:將模型記錄彙總成一條記錄
/*
filter the model to get only one food category, which is determined by the user selecting a choice that sets the property: theCategory
*/
var foodByCategory = get(this, 'model').filter(function(rec) {
return get(rec, 'category') === theCategory;
});
/*
Now, roll up all the food records to get a total
of all cost, salePrice, and weight
*/
summary = foodByCategory.reduce(function(a,b){
return {
cost: a.get('cost') + b.get('cost'),
salePrice: a.get('salePrice') + b.get('salePrice'),
weight: a.get('weight') + b.get('weight')
};
});
我對這一切都錯了嗎?有沒有更好的方法將model
中的多條記錄彙總到一條記錄中,還是隻需要將模型記錄平鋪爲簡單對象,或者返回reduce()
中的Ember對象?
編輯:做return Ember.Object.create({...})
的工作,但我仍想這是否是實現這一目標的最佳途徑,或者一些意見,如果灰燼提供的功能,將做到這一點,如果是的話,如果他們比reduce
好。
您使用的是燼數據嗎? –
@selvaraj:是的我是 – redOctober13
這個代碼在哪裏? – locks