如何比较Handlebars.java中的等式和其他逻辑条件。例如:
{{#if template_version == "v2" }}
//do something
{{ else }}
//do something
{{/if}}欢迎使用或不含registerHelper()的解决方案。
发布于 2016-06-21 04:31:03
您需要编写一个助手来执行==检查,因为车把不提供==构造。
您可以编写这样一个简单的助手:
Handlebars.registerHelper('if_eq', function(a, b, opts) {
if(a == b) // Or === depending on your needs
return opts.fn(this);
else
return opts.inverse(this);
});你可以给帮手取任何名字。我给了if_eq。
现在,在模板中:
{{#if_eq template_version "v2" }}
//do something
{{ else }}
//do something
{{/if_eq}}以防万一,您需要为所有操作员提供帮助,您可以这样做:
Handlebars.registerHelper({
eq: function (v1, v2) {
return v1 === v2;
},
ne: function (v1, v2) {
return v1 !== v2;
},
lt: function (v1, v2) {
return v1 < v2;
},
gt: function (v1, v2) {
return v1 > v2;
},
lte: function (v1, v2) {
return v1 <= v2;
},
gte: function (v1, v2) {
return v1 >= v2;
},
and: function (v1, v2) {
return v1 && v2;
},
or: function (v1, v2, opts) {
return v1||v2;
}
});https://stackoverflow.com/questions/37915616
复制相似问题