2017-04-10 7 views
0

どこから始めるべきかわからない問題があります。私はコレクション内のすべての一致する文書から合計金額を計算するボタンを持っています。すなわち、特定の月、年、および支店の計算。今のところ、最初にクリックすると「y」の量が、2回目は「x」の量が返されます。Meteor js mongodb SUMコレクション文書が不完全です

私が推測するのは、最初にコレクション文書が不完全であるということです。

どうすればこの問題を解決できますか?これが既に答えられているなら、私は失礼します。私はうまくいきませんでした。

ボタンをクリックすると、テンプレートのイベントで実行されます。

'click #calculate': function(event,instance){ 
    var _transactions = instance.Transactions().fetch(); 
    var capital = _transactions.reduce(function(sum, row){ 
     return row.is_accountable ? sum + row.transaction_amount : sum + 0; 
    }, 0); 
    instance.capital.set(capital); 
} 

答えて

0

あなたはブレイズを使用しているので、あなたはこの計算に代わりイベントハンドラのヘルパーを作っ考えるかもしれません。 (a)ユーザは合計を得るためにクリックする必要はなく、(b)データが反応的に変化したとしても、合計は常に最新である。

Template.myTemplate.helper({ 
    sum(){ 
    s = 0; 
    Transactions.find().map((doc)={ 
     s += doc.is_accountable ? doc.transaction_amount : 0; 
    }); 
    return s; 
    } 
}); 
関連する問題