this articleの mustache.js で if/else を使用する方法を読みました。
私の質問ですが、if
ステートメントで比較演算子を使用することは可能ですか?
のように(間違った例を挙げただけです):
{{#ItemIndex==0}}
<td>{{ItemIndex}}</td>
{{/ItemIndex}}
{{^ItemIndex==0}}
<td>{{ItemIndex}} *</td>
{{/ItemIndex}}
どうやってするか ?
this articleの mustache.js で if/else を使用する方法を読みました。
私の質問ですが、if
ステートメントで比較演算子を使用することは可能ですか?
のように(間違った例を挙げただけです):
{{#ItemIndex==0}}
<td>{{ItemIndex}}</td>
{{/ItemIndex}}
{{^ItemIndex==0}}
<td>{{ItemIndex}} *</td>
{{/ItemIndex}}
どうやってするか ?
Mustache を使用してそれを行うことはできません。
ただし、0 (偽) に等しい値に関心があるため、次のようにすることができます。
/*
Template:
{{#objs}}
{{^ItemIndex}}
{{ItemIndex}}*
{{/ItemIndex}}
{{#ItemIndex}}
{{ItemIndex}}
{{/ItemIndex}}
{{/objs}}"
*/
var template = "{{#objs}}{{^ItemIndex}}{{ItemIndex}}*{{/ItemIndex}}{{#ItemIndex}}{{ItemIndex}}{{/ItemIndex}}\n\n{{/objs}}"
document.getElementsByTagName('body')[0].textContent = (Mustache.render(template, {objs: [
{
ItemIndex: 0
},
{
ItemIndex: 1
},
{
ItemIndex: 2
}
]}))
// result => 0* 1 2
テンプレートに if/else コンストラクトが必要で、Mustache 構文が好きな場合は、 Handlebars.jsを調べてください。