【问题标题】:jsrender/ jsviews: how to loop a selected object list?jsrender/jsviews:如何循环选定的对象列表?
【发布时间】:2014-01-03 09:59:50
【问题描述】:

如何仅从我的 json 数据循环选定的组/对象列表?例如,我只想在下面的示例中循环 "ID2"

json,

 { 
"ID1": {
        "items":{
            "0": "VALUE1",
            "1": "VALUE2",
            "2": "VALUE3",
            "4": "VALUE4"
        }
    },
"ID2": { 
        "items": {
            "0": "VAL2-1",
            "1": "VAL2-2",
            "2": "VAL2-3"
        }
    }
}

js,

myTmpl2 = $.templates("#myTmpl2");
    $("#result2").html(
        myTmpl2.render(data2)
    );

模板,

<script id="myTmpl2" type="text/x-jsrender">
{{props #data}}
    <tr>
            <td>{{:key}}</td>

                {{for prop}}
                    {{props items}}

                     <td>{{>key}} - {{>prop}}</td>

                    {{/props}}
                {{/for}}


            </tr>
{{/props}}
</script>

结果,

ID1     0 - VALUE1  1 - VALUE2  2 - VALUE3  4 - VALUE4
ID2     0 - VAL2-1  1 - VAL2-2  2 - VAL2-3

我追求的结果,

结果,

ID2     0 - VAL2-1  1 - VAL2-2  2 - VAL2-3

有可能吗?

顺便说一句,#data{{props #data}} 中是什么意思(我正在使用它但不明白它!)?

如果我只想选择一个组,我可以这样做吗?{{props #data.ID2}}??

【问题讨论】:

    标签: jquery json jsrender jquery-1.9 jsviews


    【解决方案1】:

    #data 是当前数据项(或数据上下文,如果您愿意的话)。 请参阅 http://www.jsviews.com/#assigntag 以获取说明这一点的示例。

    实际上#data#view.data 的缩写,#view 是当前的“视图”。例如,请参阅此示例:http://www.jsviews.com/#samples/jsr/paths

    foo.bar等数据路径从当前数据项开始,所以#data.foo.barfoo.bar是等价的。

    在上面的示例中,您可以直接转到 ID2 对象,方法是:

    <tr>
        <td>ID2</td>
        {{props ID2.items}}
            <td>{{>key}} - {{>prop}}</td>
        {{/props}}
    </tr>
    

    其他变体:

    {{for ID2}}
        <tr>
            <td>ID2</td>
            {{props items}}
                <td>{{>key}} - {{>prop}}</td>
            {{/props}}
        </tr>
    {{/for}}
    

    或:

    {{props #data}}
        {{if key === "ID2"}}
            <tr>
                <td>{{:key}}</td>
                {{for prop}}
                    {{props items}}
                        <td>{{>key}} - {{>prop}}</td>
                    {{/props}}
                {{/for}}
            </tr>
        {{/if}}
    {{/props}}
    

    【讨论】:

      猜你喜欢
      • 2014-01-20
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多