我有一个模板:
{{#people}}
<div style="background-color: **gray/white**;"><span>{{name}}</span>: <span>{{title}}</span></div>
{{/people}}
有没有办法在不从我的控制器传入的情况下设置该背景颜色?这纯粹是显示,因此我觉得它不属于我的控制器,所以如果可能的话,我想避免在那里命名颜色。
正如我在评论中提到的,Mustache 无法解决这个问题,但是我找到了一个 mustache.js-specific 方法:
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)