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

How to check if-else condition in Handlebars

更新:大家好,

我只想检查 yearNumber 是否等于 11 或 12,然后根据它在此代码中添加一些内容,但比较不起作用。它说:"Expected close }} " 在 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> 

谢谢大家!

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

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

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