5

this articleの mustache.js で if/else を使用する方法を読みました。

私の質問ですが、ifステートメントで比較演算子を使用することは可能ですか?

のように(間違った例を挙げただけです):

{{#ItemIndex==0}}
   <td>{{ItemIndex}}</td>
{{/ItemIndex}}
{{^ItemIndex==0}}
   <td>{{ItemIndex}} *</td>
{{/ItemIndex}}

どうやってするか ?

4

1 に答える 1

3

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を調べてください。

于 2013-09-05T14:07:14.390 に答える