2

我想返回由一个 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/

4

1 回答 1

0

据我所知,您的问题在于您传递给渲染方法的对象。您通过dataResults.Programmes并尝试访问Programmes财产。您需要做的就是通过dataResults,它会起作用。

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

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

另外,请注意您的 js 代码标准。让你的左花括号{与函数名放在同一行。这是一本关于 javascript 代码约定的好读物

于 2013-05-16T12:28:54.530 回答