Handlebars.java で等価条件とその他の論理条件を比較するにはどうすればよいですか。例えば:
{{#if template_version == "v2" }}
//do something
{{ else }}
//do something
{{/if}}
ありまたはなしのソリューションregisterHelper()
は大歓迎です。
Handlebars.java で等価条件とその他の論理条件を比較するにはどうすればよいですか。例えば:
{{#if template_version == "v2" }}
//do something
{{ else }}
//do something
{{/if}}
ありまたはなしのソリューションregisterHelper()
は大歓迎です。
==
ハンドルバーはすぐに使用できるコンストラクトを提供しないため、チェックを行うヘルパーを作成する必要があり==
ます。
次のような単純なヘルパーを作成できます。
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;
}
});