2

このようなモデルがいくつかある場合

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 メソッドまたは何らかの方法はありますか?

4

1 に答える 1

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 タイプのみが除外され、前に行ったように合計計算が行われます。

于 2013-02-25T02:41:59.160 に答える