Как сделать чередующиеся цвета строк в шаблоне Mustache.js? - PullRequest
3 голосов
/ 30 августа 2011

У меня есть шаблон:

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

Есть ли способ установить этот цвет фона, не передавая его из моего контроллера? Это чисто дисплей, и я не чувствую, что в результате он принадлежит моему контроллеру, поэтому я хотел бы избежать именования цветов там, если это возможно.

1 Ответ

4 голосов
/ 01 сентября 2011

Как я уже упоминал в комментарии, усы не могут решить эту проблему, однако я нашел способ, специфичный для 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)
...