如果你有这样的对象数组并使用一个简单的{{#.}} <li>{{name}} -- {{color}} </li> {{/.}}
循环,那就更简单了:
var myCars =
[
{"index":1,"name":"One", "color":"red" }},
{"index":2,"name":"Two", "color":"green" }}
];
另一种方法是构建一个迭代器来解开每个项目:
这里的例子:http: //jsfiddle.net/9qMqW/2/
var myCars =
[
{"1":{ "name":"One", "color":"red" }},
{"2":{ "name":"Two", "color":"green" }}
];
// decorate the array with the iterator function
myCars.getNextCar = function(){
!myCars.i ? myCars.i=1 : ++myCars.i;
return(myCars[myCars.i-1][myCars.i])
};
var template = $("#carsTemplate").html();
$("#carsContainer").html(Mustache.render(template,{cars:myCars}));
您的 HTML 将是:
<div id="carsContainer">
</div>
<script id="carsTemplate" type="text/plain">
<ul>
{{#cars}}
{{#cars.getNextCar}}
<li>{{name}} -- {{color}}</li>
{{/cars.getNextCar}}
{{/cars}}
</ul>
</script>
请注意,getNextCar
它将在您的对象中创建一个迭代器的方法,因此如果您多次使用,则必须获得一个新的迭代器。或者只是按照其他海报的建议更改数组内容。
附带说明一下,您可能想看看http://handlebarsjs.com/,它更健壮,语法更灵活。