我有一些这样的json,我从$http
拉出来并指定范围来迭代ng-repeat
JSON:
[{"id":19,"Name":"Apple Pie","Type":"Pies"},
{"id":20,"Name":"Old Fashioned Pumpkin Pie","Type":"Pies"},
{"id":21,"Name":"White Rolls","Type":"Rolls"},
{"id":27,"Name":"Honey Sandwich","Type":"Sandwich"}]
我想要的是ng-repeat
制作的列表,就像这个标记
-Pies
- Apple Pie
- 老式南瓜饼
-Rolls
- White Rolls
夹层结构
- 蜂蜜三明治
所以不是这个
<div class="form-group" ng-repeat="bread in breads">
<label for="exampleInputPassword1">@{{bread.Name}}</label>
</div>
这样的事情:
<div class="form-group" ng-repeat="bread in breads">
<label for="thing">@{{bread.Type}}</label><!--But only if first of type-->
<label for="exampleInputPassword1">@{{bread.Name}}</label>
</div>
基本上我唯一能想到的就是:
-Pies
- Apple Pie
-Pies
- 老式南瓜饼
当我不想要&#34; Pies&#34;因为有两个馅饼要重复两次,我想按类型分开。 $first
属性仅适用于我认为的整个集合,因此在这里没有任何帮助。有什么我可以做的就是改革JSON吗?
答案 0 :(得分:3)
你可以这样做,
<div ng-controller="MyCtrl">
<ul ng-repeat="(key, value) in breads | groupBy: 'Type'">
<b>{{ key }}</b>
<li ng-repeat="breado in value">
<i>{{ breado.Name }} </i>
</li>
</ul>
</div>