如何在Meteor的模板中做一些简单的数学运算?

vla*_*irp 7 handlebars.js meteor

假设我在Meteor中有一个简单的product_orders集合(_id,user_id,user_name,product_name,price_unit,quantity),我想在表中显示单个用户的所有订单,其中每行应包含:

user_name, product_name, quantity, price_unit, quantity, price_total (price_unit * quantity)
Run Code Online (Sandbox Code Playgroud)

此外,我想显示所有用户订单的总计.

我没有看到在Handlebars.js模板中执行此操作的简单方法,因为Handlebars似乎不支持简单的数学运算.我可以轻松地将product_order的光标返回到我的模板,但是看不到简单的方法来计算模板中的price_total和总计.

我正在考虑创建某种类型的模板助手,但不确定这是否是正确的方向.这个问题看起来必须有一个简单而优雅的解决方案.

Rah*_*hul 15

是的,你应该写一个帮手.Handlebars不支持在模板中使用逻辑(这是一种很好的做法,因为它会强制您应用关注点分离模式).

模板助手看起来像这样:

Handlebars.registerHelper("grandTotal", function(user_name) {
  var grandTotal = some_magic_to_calc_total(user_name);
  return grandTotal;
});
Run Code Online (Sandbox Code Playgroud)

然后你可以从你的模板中调用这样的帮助:

<template name="foo">
  {{grandTotal user_name}}
</template>
Run Code Online (Sandbox Code Playgroud)

您可以在Handlebars.js文档中阅读有关帮助程序的更多信息.