简化ng-repeat循环

时间:2014-03-20 09:30:32

标签: angularjs angularjs-ng-repeat

我的json数据如下,

person = ["name": "Alex", "Cities": [{"1": "Boulder"}, {"2": "Longmont"}, {"5": "Denver"}]]

我过去常常迭代所有城市,

<div id="information">
   <div ng-repeat="city in person.Cities" >
       <div ng-repeat="(id, name) in city" >
        {{name}}
        </div>
    </div>  
</div>

此方法有效,但显示城市名称使用了两个ng-repeat控制器。我正在寻找列出城市的简单方法。 在此先感谢。

2 个答案:

答案 0 :(得分:1)

您的数据是嵌套的,这意味着另一个数组中的一个数组。这两个循环没有办法。

您可以在让数据渲染之前重构数据,这样只需要循环一个循环。

答案 1 :(得分:0)

您的JSON可以简化;

person = ["name": "Alex", "Cities": {"1": "Boulder", "2": "Longmont", "5": "Denver"}]

然后

<div id="information">
    <div ng-repeat="(id, cityName) in person.Cities" >
        {{cityName}}
    </div>  
</div>

如果你想保持花园的嵌套;

person = ["name": "Alex", "Cities": {"1": {name: "Boulder", somethingElse: 'something'}}]

迭代

<div id="information">
    <div ng-repeat="(id, cityData) in person.Cities" >
        {{cityData.name}}
    </div>  
</div>