可能会遗漏一些简单的东西,但是如何根据对象上的操作在Handlebars中指定条件?
想做点什么
{{#hasDiscount this}}
<tr>
<td>Discount</td>
<td>{{formatPrice this.Discount}}</td>
</tr>
{{/hasDiscount}}
使用
的帮助Handlebars.registerHelper 'hasDiscount', (cart) ->
:runBlock: if cart.Discount > 0
不确定如何告诉它运行该块。
感谢您的任何意见。
答案 0 :(得分:3)
玩完之后找到了一种更简单的方法。
{{#if hasDiscount}}
<tr>
<td>Discount</td>
<td>{{formatPrice this.Discount}}</td>
</tr>
{{/if}}
因为购物车已经是模板中的对象,我可以像这样设置帮助器
Handlebars.registerHelper 'hasDiscount', ->
true if @Discount > 0
答案 1 :(得分:1)
帮助器作为最后一个参数传递block
。 block
将是一个可以运行以获取块内容的函数,您还可以block.inverse()
到达{{else}}
分支:
Handlebars.registerHelper 'hasDiscount', (cart, block) ->
if cart.Discount > 0
block()
else
block.inverse()
documentation并没有真正说明这一点,因此您必须根据示例做出一些猜测并尝试一些事情。