如何在mustache.js中完成if / else使用比较?

时间:2013-09-05 13:39:57

标签: jquery mustache

我在这个article中阅读了如何在mustache.js中使用if / else。

现在我的问题是,可以在if语句中使用比较运算符吗?

喜欢(只是我给出了一个错误的例子):

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

怎么做?

1 个答案:

答案 0 :(得分:2)

你不能用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

Fiddle

如果您需要 if / else在模板中构造并且像Mustache语法一样,那么您应该查看Handlebars.js