1

我有一个显示即将进行的活动的 ng 重复。我想每个月显示一次。有没有办法显示第一个带有月份的重复项目而另一个没有?

在附加图像中,您将看到当前情况与重复的月份分隔符。我只想在该月显示该月一次,然后显示该月的所有项目。我怎样才能隐藏这些月份的重复项?

在此处输入图像描述

      <ul class="list">
      <li ng-repeat="item in calendar | filter:searchText" >
      <div class="item item-divider" ng-hide="what to do here?">{{item.month}}</div>

      <div class="item item-text-wrap">
          <span>{{item.day}}</span>
          <span>{{item.title}}</span>
      </div>

      </li>
  </div>
4

1 回答 1

1

您可以在 ng-repeat 上使用angular.filtergroupBy模块的过滤器,然后使用第二个 ng-repeat 循环遍历分组的项目。

<ul class="list" ng-repeat="(key, value) in calendar | groupBy: 'month'">
   <li>{{ key }}</li>
   <li ng-repeat="item in value | filter:searchText" >
       <div class="item item-divider" ng-hide="what to do here?">{{item.month}}</div>
       <div class="item item-text-wrap">
          <span>{{item.day}}</span>
          <span>{{item.title}}</span>
       </div>
   </li>
</ul>

Maarten Heideman 提供的最终工作代码

<ul class="list" ng-repeat="maand in agenda | groupBy: 'maand' : 'agendamaand'"> 
    <div class="item item-divider">{{ maand.maand }}</div> 
    <li ng-repeat="item in maand.items | filter:searchText"> 
        <div class="item item-text-wrap"> 
            <span class="time prio-{{item.prio}}">{{item.start}}</span> 
            <span>{{item.title}}</span> 
        </div> 
    </li> 
</ul>
于 2015-11-11T20:13:52.943 回答