如何在 ng-repeat 中添加月份分隔符?
How add month divider in ng-repeat?
我有一个 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>
您可以在 ng-repeat 上使用 angular.filter 模块的 groupBy
过滤器,然后使用第二个 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>
我有一个 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>
您可以在 ng-repeat 上使用 angular.filter 模块的 groupBy
过滤器,然后使用第二个 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>