如何检查Handlebars中的if-else条件

时间:2015-01-21 12:31:43

标签: html html5 internationalization handlebars.js

更新:大家好,

我只想检查yearNumber是否等于11或12,然后在此代码中根据它放置一些东西,但是比较不起作用。它说:if if条件中的“预期关闭}}”。我确信这是非常愚蠢的事情。这是代码:

<div>
        {{#if {{yearNumber}} == 11  }}
        <label class="text-label">{{i18n "EDUCATION_EET_GUARANTEE_YEAR_11"}} </label>
        <a id="ed_eetEditGuaranteeAnchor{{yearNumber}}" href="#" class="education-icon-links"
           title="{{i18n "EDUCATION_EET_EDIT_YEAR_11_GUARANTEE_LINK_TITLE"}}">
            <span id="ed_eetEdit{{yearNumber}}GuaranteeIcon" class="icon-edit"></span>
        </a>
        {{else}}
            {{#if {{yearNumber}} == 12  }}
                <label class="text-label">{{i18n "EDUCATION_EET_GUARANTEE_YEAR_12"}} </label>
                <a id="ed_eetEditGuaranteeAnchor{{yearNumber}}" href="#" class="education-icon-links"
                   title="{{i18n "EDUCATION_EET_EDIT_YEAR_12_GUARANTEE_LINK_TITLE"}}">
                    <span id="ed_eetEdit{{yearNumber}}GuaranteeIcon" class="icon-edit"></span>
                </a>
            {{/if}}
        {{/if}}
    </div> 

谢谢大家!

1 个答案:

答案 0 :(得分:1)

您不能这样做,因为Handlebars是无逻辑的,这意味着在您的情况下,设计中不允许在模板中进行任何类型的评估(实际上是比较)。

解决问题的正确方法是使用准备好的数据进行渲染。例如。创建像isOddYear: true / isEvenYear: true或类似的标志取决于任务。我真的不知道你的范围是什么。

另一种方法是创建自定义帮助程序或扩展现有帮助程序,例如{{i18n}}并传递yearNumber作为参数。