如果您想在模板中执行此操作,可以添加自己的助手。事情是这样的:像这样
Handlebars.registerHelper('each_with_class', function(ary, first, rest, options) {
if(!ary || ary.length == 0)
return options.inverse(this);
var result = [ ];
var context = null;
var cls = { cls: first };
for(var i = 0; i < ary.length; ++i) {
context = _({}).extend(ary[i], cls);
result.push(options.fn(context));
cls.cls = rest;
}
return result.join('');
});
那么你的模板可以说的东西:
{{#each_with_class pages "active" "static"}}
<div class="{{cls}}">
Same stuff you're doing now.
</div>
{{/each_with_class}}
如果你不介意ary[i]
相处的方式进行修改,那么你可以直接分配给ary[i].cls
而不是使用_.extend
的做一个副本。
演示:http://jsfiddle.net/ambiguous/ZMSQh/1/
据我所知没有通过'#each'提供指数可能.. – lrsjng
您使用的把手为您的模板进行检查? –
是的,我正在使用手柄 – myTD