如何在Mustache.js模板中创建交替的行颜色?

时间:2011-08-30 17:52:09

标签: templates mustache

我有一个模板:

{{#people}}
  <div style="background-color: **gray/white**;"><span>{{name}}</span>: <span>{{title}}</span></div>
{{/people}}

有没有办法设置背景颜色而不从控制器传递它?这是纯粹的显示,我觉得它不属于我的控制器,所以如果可能的话,我希望避免在那里命名颜色。

1 个答案:

答案 0 :(得分:4)

正如我在评论中提到的,Mustache无法解决这个问题,但是我发现了一种特定于mustache.js的方式:

var template = '{{#people}}'
  +'  <div style="background-color: {{color}}"><span>{{name}}</span>: <span>{{title}}</span></div>'
  +'{{/people}}'

var data = {
  people: [
    {name: 'a', title: 'b'},
    {name: 'c', title: 'd'},
    {name: 'e', title: 'f'},
    {name: 'g', title: 'h'},
    {name: 'i', title: 'j'},
  ],
  color: function() {
    return window.divcolor = window.divcolor == 'gray' ? 'white' : 'gray'
  }
}

Mustache.to_html(template, data)