是否可以在Handlebars模板中嵌套if / else语句?

时间:2013-07-30 11:24:57

标签: javascript html templates handlebars.js

我想知道是否可以使用把手嵌套多个if / else语句?到目前为止我所有的尝试都导致了编译错误,我想做的事情如下:

{{if address}}
    <ul>
    <li>address.line1</li>
    <li>address.line2</li>
    {{if address.line3}}<li>address.line3</li>{{/if}}
    {{if address.line4}}<li>address.line4</li>{{/if}}
{{else}}
   No address given
{{/if}}

我在这里尝试的是可以实现的吗?它总是导致解析器错误,因此我通过编写帮助程序来处理吐出地址(处理javascript中line3 / line4的条件性)来解决它:

{{if address}}
    {{formatAddress address}}
{{else}}
   No address given
{{/if}}

虽然这有效,但不必为这种简单条件的每个实例编写一个辅助函数。

1 个答案:

答案 0 :(得分:19)

我相信如果需要前面的#

试试这个。

{{#if address}}
    <ul>
        <li>address.line1</li>
        <li>address.line2</li>
        {{#if address.line3}}<li>address.line3</li>{{/if}}
        {{#if address.line4}}<li>address.line4</li>{{/if}}
    </ul>
{{else}}
   No address given
{{/if}}