我想返回包含两个子对象的JSON对象的数据。在客户端上,我希望能够使用jsRender {{for}}构造一次只遍历一个特定对象。
我可以在不使用{{for}}的情况下渲染所有内容,但我想使用{{for}}。
那么为什么这不起作用?
<script id="progDetailsTemplate" type="text/x-jsrender">
{{for Programmes}}{{!-- Why won't this work? -->}}
<tr><td>{{>GroupName}}</td></tr>
{{/for}}
</script>
然而,这确实有效:
<script id="progDetailsTemplate" type="text/x-jsrender">
<tr><td>{{>GroupName}}</td></tr>
</script>
其他对象可能具有名为'GroupName'的相同属性,这就是我想要帮助的原因。
我已创建了一个jsFiddle,因此您可以在此处查看示例:http://jsfiddle.net/SNSXs/1/
答案 0 :(得分:0)
据我所见,您的问题在于您传递给render方法的对象。您通过了dataResults.Programmes
并尝试访问Programmes
媒体资源。你需要做的是通过dataResults
,它会起作用。
我对您的jsfiddle示例进行了更改。唯一的变化是呼叫方法:
function BuildProgs() {
$("#progTable").append(
$("#progDetailsTemplate").render(dataResults)
);
}
另外,关于你的js代码标准的旁注。将左大括号{
放在与函数名称相同的行中。关于javascript代码约定的This is a good read