JsRender / JsViews:如何循环嵌套的json?

时间:2014-01-02 20:21:32

标签: jquery json jsrender jsviews

如何使用jsrender / jsviews 循环如下所示的嵌套json?

var data = {  
    nested: {
        page: {
            type: "X",
            items: {
                "0":{"title":"page - hello"},
                "1":{"title":"page - world"}
            }
        },
        post: {
            type: "Y",
            items: {
                "0":{"title":"post - hello"},
                "1":{"title":"post - world"}
            }
        }  
    }

};

模板,

{{for nested}}
<div>
    <h1>Type: {{ :type }}</h1>
    {{for items}}
    <p>Title:  {{:title}} </p> 
    {{/for}}
</div>
{{/for}}

结果,

Type: {{ :type }}

我在追求什么,

Type: X
Title - page - hello
Title - page - World

Type: Y
Title: post - hello
Title: post - World

2 个答案:

答案 0 :(得分:2)

JsRender和JsViews有一个{{props}}标签用于迭代字段,但尚未完全记录。最新的实施即将推出,文档将随之而来。 [请参阅下面的更新,其中包含现有文档的链接]

现在看一下这个相关的堆栈交换答案:

以及此处的示例:

现在记录了

更新: {{props}},此处:http://www.jsviews.com/#propstag

答案 1 :(得分:0)

我认为您遇到的问题是您在数据中声明对象而不是数组。尝试使用下面的数据。

  var data = {  
      nested: {
        {
            type: "X",
            items: {
                "0":{"title":"page - hello"},
                "1":{"title":"page - world"}
            }
        },
        {
            type: "Y",
            items: {
                "0":{"title":"post - hello"},
                "1":{"title":"post - world"}
            }
        }  
    }

  };

这种方式嵌套是一个数组,for应该可以循环遍历它。