2013-01-20 28 views
6

比方說,我有流星(_id,USER_ID,USER_NAME,PRODUCT_NAME,價格單位,數量)的簡單product_orders收集和我想表明,每一行應該包含在表中的單個用戶的所有訂單:如何在Meteor的模板中做一些簡單的數學運算?

user_name, product_name, quantity, price_unit, quantity, price_total (price_unit * quantity) 

此外,我想顯示所有用戶的訂單總計。

我看不出在Handlebars.js模板中做到這一點的簡單方法,因爲Handlebars似乎不支持簡單的數學運算。我可以輕鬆地將product_order的光標返回到我的模板,但沒有看到簡單的方法來計算模板中的price_total和總計。

我正在考慮創建某種模板幫助程序,但不知道這是否是正確的方向。這個問題看起來像它必須有一個簡單的&優雅的解決方案。

回答

13

是的,你應該寫一個幫手。把手不支持在模板中使用邏輯(這是一個很好的做法,因爲它會強制您應用關注模式的分離)。

模板助手看起來是這樣的:

Handlebars.registerHelper("grandTotal", function(user_name) { 
    var grandTotal = some_magic_to_calc_total(user_name); 
    return grandTotal; 
}); 

然後你可以從你的模板調用這樣的幫手:

<template name="foo"> 
    {{grandTotal user_name}} 
</template> 

你可以閱讀更多有關Handlebars.js docs助手。

相關問題