このようなオブジェクト配列があり、単純な{{#.}} <li>{{name}} -- {{color}} </li> {{/.}}
ループを使用すると、より簡単になります。
var myCars =
[
{"index":1,"name":"One", "color":"red" }},
{"index":2,"name":"Two", "color":"green" }}
];
もう 1 つの方法は、イテレータを作成して各アイテムをアンラップすることです。
例: 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/をご覧になることをお勧めします。これは、より柔軟な構文でもう少し堅牢です。