1

基本上我要做的是创建一个视图,其中任意 JSON 对象将被渲染到一个表中,每一行只是键:值(可以安全地假设该对象不包含嵌套数组/对象/等。 )。

例如,如果我有一个像这样的对象:

{
    "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>

知道这怎么可能吗?我似乎无法在文档中找到我要查找的内容。任何帮助表示赞赏。

4

2 回答 2

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>'
]

希望这可以帮助其他人将来遇到同样的问题!

于 2012-06-28T12:47:15.200 回答
0

一个更优雅的解决方案将是

    <tpl foreach=".">
       <tr>
        <td>{[xkey]}</td>
        <td>{.}</td>
       </tr>
    </tpl>
于 2014-04-01T07:01:55.557 回答