2012-04-11 17 views
1

可能缺少一些簡單的東西,但是如何根據對象的操作在Handlebars中指定條件?Handlebars中的自定義條件

希望做類似

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

隨着沿

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

不知道如何告訴它運行的多個行的幫手。

感謝您的任何意見。

回答

3

玩過之後發現更簡單的方法。

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

因爲車已經在模板中的對象我可以這樣設置

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

這很簡單,優雅的幫手。 – Quickredfox 2012-09-12 18:55:25

1

該幫手通過block作爲最後一個參數。該block將是您可以運行來獲得在塊的內容的功能,你也block.inverse()可以以在{{else}}分支得到:

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

documentation並沒有真正拼了這一點,所以你必須做出一些根據示例猜測並嘗試幾件事情。