【问题标题】:Render multiple JSON objects using jsRender使用 jsRender 渲染多个 JSON 对象
【发布时间】:2013-05-16 09:21:08
【问题描述】:

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

【问题讨论】:

    标签: jsrender


    【解决方案1】:

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

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

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

    另外,请注意您的 js 代码标准。让你的左花括号{ 与函数名放在同一行。 This is a good read 关于 javascript 代码约定

    【讨论】:

    • 哦,我明白了——只要你知道怎么做就容易了。也感谢 JS 代码标准文章。添加到我的阅读清单中:-)
    • 您也可以忽略 {{for Programmes}} 标签。如果稍后您移至 JsViews,最好使用 ,因为如果您不放一个,浏览器会添加 ... 请参阅jsfiddle.net/SNSXs/4
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    相关资源
    最近更新 更多