当我看到Handlebars赢了,让我感到惊讶的是,让你用一点点逻辑(如果有东西=== 1 ......),所以我真的坚持如何做到这一点车把模板。
if {{price_type}} == 1
Example
else if {{price_type}} == 2
{{min_price}}
else
No price
Handlebars如何解决这个问题?谢谢你们
答案 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