0

コレクションのモデル内の特定の属性の合計を見つけるにはどうすればよいですか?

var myModel = Backbone.Model.extend({ });

var myCollection = Backbone.Collection.extend({
    model :  myModel,
});

モデルの値が変化するたびに、すべての値の合計を表示する必要があります。

たとえば、コレクションに 10 個のモデルがあり、モデルには というプロパティがありますamountamountプロパティが新しい値を取得するたびに、合計を表示する必要があります。

私が使用したコード:

debitAmountTotal: function(){
    return this.reduce(function(memo, value) {
        return memo + value.get("amountTcy");
    }, 0);
}

ただし、これは値を連結します。最初の値が 8 で 2 番目の値が 8 の場合、結果は 16 ではなく 88 になります。

4

2 に答える 2

2
  1. 各モデルの amount にデフォルト値の 0 を割り当てます。
  2. コレクションのモデルにイベントをバインドしchanged、コレクションに追加/削除します。
  3. changedイベントでは、underscore.js の reduce メソッドを使用しコレクションを反復処理し、金額の合計を見つけます。
于 2013-08-26T06:17:29.890 に答える
0
debitAmountTotal: function(){
    return this.reduce(function(memo, value) {
        return memo + Number(value.get("amountTcy"));
    }, 0);
}
于 2013-08-26T17:03:09.303 に答える