2012-04-11 10 views
1

単純なものがありませんが、オブジェクトの操作に基づいてハンドルバーに条件を指定するにはどうすればよいですか? ハンドルバーのカスタム条件式

Handlebars.registerHelper 'hasDiscount', (cart) -> 
    :runBlock: if cart.Discount > 0 

ブロックを実行するよう指示する方法がわからないの線に沿ってヘルパーで

{{#hasDiscount this}} 
    <tr> 
    <td>Discount</td> 
    <td>{{formatPrice this.Discount}}</td> 
    </tr> 
{{/hasDiscount}} 

のような何かを探しています。

ありがとうございます。

答えて

3

再生した後、さらに簡単な方法で見つけました。

{{#if hasDiscount}} 
    <tr> 
    <td>Discount</td> 
    <td>{{formatPrice this.Discount}}</td> 
    </tr> 
{{/if}} 

カートはすでに、私はちょうどこれはシンプル、かつエレガントであるこの

Handlebars.registerHelper 'hasDiscount', -> 
    true if @Discount > 0 
+0

のようにヘルパーを設定することができ、テンプレート内のオブジェクトだったので。 – Quickredfox

1

ヘルパーは最後の引数としてblockを渡します。

Handlebars.registerHelper 'hasDiscount', (cart, block) -> 
    if cart.Discount > 0 
    block() 
    else 
    block.inverse() 

documentationは本当にあなたには、いくつかを確認する必要があり、これを綴るしない:blockはあなたにもblock.inverse(){{else}}支店で取得することができ、あなたはブロックの内容で取得するために実行できる機能になります例に基づいていくつか試してみてください。