基本上我要做的是创建一个视图,其中任意JSON对象将呈现为一个表,每行只是键:value(可以安全地假设该对象不包含嵌套数组/对象/等)。
例如,如果我有一个像这样的对象:
{
"Name": "John Doe",
"Age": 34
}
在tpl中呈现它的通常方法是:
<td>Name:</td><td>{Name}</td>
<td>Age:</td><td>{Age}</td>
但是,我想把它视为我实际上并不知道属性名称,所以我想要这样的东西:
<tpl for=".">
<td>{property.key}</td><td>{property.val}</td>
</tpl>
知道这有可能吗?我似乎无法在文档中找到我正在寻找的内容。任何帮助表示赞赏。
答案 0 :(得分:1)
对于将来面临同样问题的人来说,我遇到的解决方案实际上非常可行,如果看起来有点难看......
基本上,在{[ ]}
标签内,您可以执行任意代码,同时可以访问某些特殊变量,例如values
等。这可能看起来有限,但如果您只是包含一个自我 - 在这些中执行函数返回你想要在渲染模板中的值,你基本上可以在这里做任何事情。
示例:
tpl: [
'<table>',
'{[ (function() { var output = []; for (i in values) { output.push("<tr><td>" + i + "</td><td>" + values[i] + "</td></tr>"); } return output.join(""); }()) ]}',
'</table>'
]
希望这有助于其他人在将来遇到同样的问题!
答案 1 :(得分:0)
更优雅的解决方案是
<tpl foreach=".">
<tr>
<td>{[xkey]}</td>
<td>{.}</td>
</tr>
</tpl>