如果我在模板中创建一个表,是否有办法添加一行"被动总计"在桌子的底部使用Meteor?或者我是否必须编写代码来对列进行求和,就像在普通JavaScript中一样?
例如,给出表格......
State Sales
NY 1234
FL 670
TX 2306
Total 4210
我可以使用一些反应技术来计算并保持显示4210
的总细胞随着其他细胞的变化而变化吗?
答案 0 :(得分:2)
另一种方法是使用MongoDB $sum aggregator
以Erik Johnson为例,你需要这样做:
// HTML
<div id="allSales">
<h2><span>Total sales: </span>{{allSales}}</h2>
</div>
// JS
Template.templatename.helpers({
allSales: function() {
var allSales = allStates.aggregate( [ { $group: { _id: null, total: { $sum: "$sales" } } } ]);
return allSales.total;
},
});
答案 1 :(得分:0)
这就是我做到的方式 - 我确信这可能是一种更简单的方法,但我仍然是Meteor的初学者:
// HTML
<div id="allSales">
<h2><span>Total sales: </span>{{allSales}}</h2>
</div>
// JS
Template.templatename.helpers({
allSales: function() {
var allStates = Statescollection.find();
var mappedItems = allStates.map((function(allStates) {return allStates.sales;}));
var allSales = _.reduce(mappedItems, function(memo, num){ return memo + num; }, 0);
return allSales;
},
});
答案 2 :(得分:0)
我遇到了同样的问题,并为表格的列和行找到了以下解决方案
In Meteor, how can i do a sum of some computed fields in a table?
答案 3 :(得分:0)
我创建了包peppelg:mongo-sum。有了它,MyCollection.find().sum('field')
将返回字段'field'
中所有值的总和。