5

我在本文中阅读了如何在 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 回答