在JSON中重复多次重复

时间:2014-11-25 18:12:34

标签: json angularjs ng-repeat

有人可以帮我用JSON和ng-repeat来解决这个问题。

API为我提供了这个JSON:

[
{
    "Category1" : {
        "1111" : "Subcat1-1",
        "1114" : "Subcat1-2"
    }
},
{
    "Category2" : {
        "1112" : "Subcat2-1",
        "1113" : "Subcat2-2"
    }
},
{
    "Category3" : {
        "1115" : "Subcat3-1",
        "1116" : "Subcat3-2"
    }
},
{
    "Category4" : {
        "1117" : "Subcat4-1",
        "1118" : "Subcat4-2"
    }
}

]

我希望ng-repeat具有这种结构:

<div>Category1</div>
<ul>
    <li>Subcat1-1</li>
    <li>Subcat1-2</li>
</ul>
<div>Category2</div>
<ul>
    <li>Subcat2-1</li>
    <li>Subcat2-2</li>
</ul>
<!-- ... and so on ... -->   

我必须重复2次,但我真的不知道如何访问数据“Subcat”。 有些想法:

<div ng-repeat="item in itemList">
    <div>{{I need the "Category1" String here}}</div>
    <ul>
        <li ng-repeat="(a,b) in itemList[item]">{{b should be the value "SubcatX-x"}}</li>
    </ul>
</div>

有人可以帮帮我吗?谢谢你的帮助。

编辑:

我自己解决了这个问题,发布后1分钟和尝试后3个小时。

解决方案:

<div ng-repeat="(a, b) in myJson">
            {{a}}
            <ul>
                <li ng-repeat="(c, d) in b">{{d}}</li>
            </ul>
</div>

2 个答案:

答案 0 :(得分:1)

我自己解决了这个问题,发布后1分钟和尝试后3个小时。

<div ng-repeat="(a, b) in myJson">
            {{a}}
            <ul>
                <li ng-repeat="(c, d) in b">{{d}}</li>
            </ul>
</div>

答案 1 :(得分:0)

要获得所需的结构,您需要添加第三个重复:

<div ng-repeat="item in itemList">
  <div ng-repeat="(a, b) in item">
    {{a}}
    <ul>
      <li ng-repeat="(c, d) in b">
        {{d}}
      </li>
    </ul>
  </div>      
</div>

http://plnkr.co/edit/sBNlmgtDjt8IgzPU2CVJ?p=preview