使用jsRender渲染多个JSON对象

时间:2013-05-16 09:21:08

标签: jsrender

我想返回包含两个子对象的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/

1 个答案:

答案 0 :(得分:0)

据我所见,您的问题在于您传递给render方法的对象。您通过了dataResults.Programmes并尝试访问Programmes媒体资源。你需要做的是通过dataResults,它会起作用。

我对您的jsfiddle示例进行了更改。唯一的变化是呼叫方法:

function BuildProgs() {
    $("#progTable").append(
            $("#progDetailsTemplate").render(dataResults)
        );
}

另外,关于你的js代码标准的旁注。将左大括号{放在与函数名称相同的行中。关于javascript代码约定的This is a good read