我需要获取从JSON API返回的所有对象的总价格。
我的想法是创建一个控制器并在其上设置属性。然后在每个对象上抓取模型循环并添加到对象总价格的预定义属性。像这样:
export default Ember.Controller.extend({
orderTotal: 0,
getOrderTotal: function(){
var model = this.get('model');
model.forEach(function(c){
var order_total = this.get('orderTotal') * c.total_price;
this.set('orderTotal', order_total)
});
}
});
问题是我无法得到模型。如何在控制器内访问模型?
答案 0 :(得分:1)
模型可能是异步加载的,因此您必须使用.then(...)等待加载的模型。
this.get('model').then(function(data) { ... create sum using `data` });
虽然我会使用计算属性来创建可能发生变化的事物的总和:
allPrices: Ember.computed.mapBy('model', 'price'),
totalPrice: Ember.computed.sum('allPrices')