好的,所以我有一个对象列表(带有未知键),如下所示:
{"Subtype":
{"gender":"m"},
{"number":"pl"}
}
有什么方法可以迭代数组并获得不同的“键”值:
{{#Subtype}}
{{#.}}
<li>{{.}}</li>
{{/.}}
{{/Subtype}}
这只打印出[object Object]
。
有什么想法吗?
答案 0 :(得分:1)
我通过JavaScript做了一些事情并在Mustache中实现。
注意:代码不是纯粹的胡子
JS代码
var mustacheFormattedData = {
'value': []
};
for (var row in tableRows) {
if (tableRows.hasOwnProperty(row)) {
var obj = tableRows[row]
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
console.log(prop)
mustacheFormattedData['value'].push({
'value': obj[prop]
});
}
}
}
}
如果人员密钥存在且不是null,undefined或false,并且不是空列表,则该块将被渲染一次或多次。
当值为列表时,将为列表中的每个项呈现块一次。块的上下文设置为每次迭代的列表中的当前项。通过这种方式,我们可以循环收集。
查看:
{
"stooges": [
{ "name": "Moe" },
{ "name": "Larry" },
{ "name": "Curly" }
]
}
模板:
{{#stooges}}
<b>{{name}}</b>
{{/stooges}}
参考this
答案 1 :(得分:1)
试试这个:
var data ={"Subtype":[
{"gender":"m"},
{"number":"pl"}]
};
$.each(data, function(key, val) {
console.log('key');
console.log(key);
console.log('val');
console.log(val);
$.each(this, function(k, v) {
/// do stuff
console.log('k = '+k+ ' v = '+v)
console.log(v)
$.each(this, function(k1, v1) {
console.log('k1 = '+k1+ ' v1 = '+v1)
})
});
});