如果我有这样的模特
App.Transaction = DS.Model.extend({
amount: DS.attr('number'),
type: DS.attr('string')
});
其中type可以是“VISA”或“Mastercard”或“Cash”。我有一个计算属性来计算所有交易的总金额。
totalAmount:function() {
return this.getEach('amount').reduce(function(accum, item) {
return (Math.round(accum*100) + Math.round(item*100))/100;
}, 0);
}.property('@each')
我想要做的是创建另一个计算属性,该属性返回按类型分组的所有事务的总量(例如,类型==“VISA”的所有事务的总量)。
我如何在Ember js中执行此操作?是否有一个getAll方法或某种方法来获取我可以过滤的数组中的所有事务对象?
答案 0 :(得分:2)
Ember.Array类有filterProperty方法,可以为您执行此操作。你可以这样称呼:
visaTotalAmount: function() {
return this.filterProperty('type', 'VISA').getEach('amount').reduce(function(accum, item) {
return (Math.round(accum*100) + Math.round(item*100))/100;
}, 0);
}.property('@each')
这会过滤掉VISA类型,并像以前那样进行总计算。