如果在句柄栏中检查相等性

时间:2017-06-10 08:19:18

标签: javascript handlebars.js

我在jsp文件中有把手代码。当我使用$ {var}时,显示我是真/假。现在我需要在下面的handlebar脚本下的同一个文件中使用它:

    ${flag}  // true or false
    <script type="text/x-handlebars-template" id="tpl-bla">
        {{#each item}}
        <div>
        {{#if this.Options}}
                {{#this.ida}}
                    {{#unless @index}}
                        {{#if icon}}
                        {{#if flag}}
                                <img>
                        {{/if}}
                        {{/if}}
                    {{/unless}}
                {{/this.ida}}

............ More Code...............

flag是字符串值。有谁知道如何解决这个问题?我希望当flag等于“true”时显示img。

我尝试过但没有用,在脚本代码中添加以下代码段:

 Handlebars.registerHelper('ifcond', function(v1, v2, options) {
            if(v1 === v2) {
                return options.fn(this);
              }
            }); 

添加以下行:

{{#ifcond flag === 'true'}}
           <img />
{{/ifcond}}

1 个答案:

答案 0 :(得分:1)

===不是有效的把手,将其删除,你的阻止就可以了。

更改

{{#ifcond flag === 'true'}}
   <img />
{{/ifcond}}

{{#ifcond flag 'true'}}
    <img />
{{/ifcond}}

您可以改进帮助,添加{{else}}支持:

Handlebars.registerHelper('ifcond', function(v1, v2, options) {
    if (v1 === v2)
        return options.fn(this);
    return options.inverse(this); //Will enter else block
});

然后您可以使用:

{{#ifcond flag 'true'}}
   <img />
{{else}}
   <!-- I'm false -->
{{/ifcond}}