2013-01-20 11 views
6

のは、私は流星(_id、user_idは、USER_NAME、PRODUCT_NAME、価格の単位、数量)で、単純なproduct_ordersのコレクションを持っていると私はそれぞれの行が含まれている必要がありますテーブル内の単一のユーザーのすべての注文を表示したいとしましょう:メテオのテンプレートで簡単な数学をするには?

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

また、すべてのユーザーの注文の総額を表示したいとします。

Handlebarsは単純な数学演算をサポートしていないようなので、これをHandlebars.jsテンプレートで簡単に行う方法はありません。私は簡単に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でヘルパーについての詳細を読むことができます。

関連する問題