Angular Ng-Repeat First Of Type

时间:2016-10-28 04:03:16

标签: angularjs json

我有一些这样的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吗?

1 个答案:

答案 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>

DEMO