如何在mustache.js中迭代散列

给这个散列

a = { foo : { ... }, bar : { ... }, zap : { ... } } 

我想遍历它,但由于键是不同的我不知道如何在Mustache.js

输出将看起来像这样的foo :(内容在这里)

如果您知道要尝试检索的嵌套对象中的键,则可以使用一个函数。

见: http : //jsfiddle.net/jimschubert/zPWDJ/

JS:

 $(function() { var names = { "a": [ {"foo": { "name": "foo name"}}, {"bar": { "name": "bar name"}}, {"zap": { "name": "zap name"}} ], "n": function() { var self = this; var n = ""; Object.keys(self).forEach(function(k, v) { if (typeof self[k] == "object") { if(!n) n = self[k]["name"]; } }); return n; } }; var template = $('#template').html(); var out = $('#output'); var html = Mustache.to_html(template, names); console.log(html); out.html(html); });​ 

HTML:

 <script id="template" class="template" type="text/x-mustache"> {{#a}} <p>{{n}}</p> {{/a}} </script> <h1>Output</h1> <div id="output"> </div>​ 

这当然假设你的数据是一个对象数组(可能是你的文章中的a可能是一个更大的数组的一个键)如果你没有一个数组,我不明白你为什么不能调整这个对象,并为你正在寻找的每个键的任何属性做一个getter函数。