给定此哈希
a = {
foo : { ... },
bar : { ... },
zap : { ... }
}
我想对其进行迭代,但是由于 key 不同,因此我不确定如何在 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函数。