把手条件

时间:2014-06-12 16:55:54

标签: if-statement handlebars.js

当我看到Handlebars赢了,让我感到惊讶的是,让你用一点点逻辑(如果有东西=== 1 ......),所以我真的坚持如何做到这一点车把模板。

 if {{price_type}} == 1
    Example
 else if {{price_type}} == 2
   {{min_price}}
 else
    No price

Handlebars如何解决这个问题?谢谢你们

3 个答案:

答案 0 :(得分:2)

您可以通过编写自己的模板帮助程序来完成此操作。

Handlebars.registerHelper('conditionalHelper', function(lValue, rValue, options) {
    if (lValue == rValue) {
        return options.fn(this);
    }
    return options.inverse(this);
});

这个帮助器将接受两个值'lValue'和'rValue'并返回true或false,具体取决于这些值是否相等。我们可以在上面给出的示例中使用此帮助程序,如下所示 -

{{#conditionalHelper price_type 1}}
    Example
{{else}}
    {{#conditionalHelper price_type 2}}
        {{min_price}}
    {{else}}
        No price
    {{/conditionalHelper}}
{{/conditionalHelper}}

答案 1 :(得分:0)

把手if-helper仅适用于布尔值。因此,当您想对它们执行条件操作时,您需要创建自己的帮助程序。

{{#ifPriceType price_type min_type}}{{/ifPriceType}}


Handlebars.registerHelper("ifPriceType",function(price_type,min_type){
if(price_type==1){ return "Example";}
else if(price_type==2){ return min_type;}
else return "No price";
});

答案 2 :(得分:0)

您甚至可以在模板中实现如下所示:

 if {{price_type}} == 1
    Example
 else 
          if {{price_type}} == 2
          {{min_price}}

          else
          No price