Handlebar.java : 比较 #if 助手中的相等性
Handlebar.java : Comparing equality in #if helpers
如何比较 Handlebars.java 中的相等性和其他逻辑条件。
例如:
{{#if template_version == "v2" }}
//do something
{{ else }}
//do something
{{/if}}
欢迎提供有或没有 registerHelper()
的解决方案。
您需要编写帮助程序来执行 ==
检查,因为 Handlebars 不提供开箱即用的 ==
构造。
你可以像这样写一个简单的助手:
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;
}
});
如何比较 Handlebars.java 中的相等性和其他逻辑条件。 例如:
{{#if template_version == "v2" }}
//do something
{{ else }}
//do something
{{/if}}
欢迎提供有或没有 registerHelper()
的解决方案。
您需要编写帮助程序来执行 ==
检查,因为 Handlebars 不提供开箱即用的 ==
构造。
你可以像这样写一个简单的助手:
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;
}
});