Я хотел бы показать элемент только один раз в ng-repeat
.
Мой код ниже не работает, потому что "Событие сегодня" отображается каждый раз, когда событие начинается сегодня...
Мой код:
<div class="line" ng-repeat="event in events">
<!-- h4 only once if condition is passed -->
<h4 ng-if="event.start.getTime() === today.getTime()">Event of today</h4>
<!-- h4 only once if condition is passed -->
<h4 ng-if="event.start.getTime() === tomarrow.getTime()">Event of tomarrow</h4>
<div class="event-body">
<a href="/event/show/{{event.id}}" class="event-title"><h3>{{event.categoryName}} : {{event.title}}</h3></a>
</div>
</div>
Просто создайте фильтрованную версию массива событий и покажите это. Вы можете сделать функцию, которая ее очищает, и называть ее всякий раз, когда есть какое-то изменение, которое необходимо обновить (помещая его в $scope.$watch
Функция $scope.$watch
кажется самым простым способом сделать это). Это кажется низкотехнологичным, но это действительно дает вам максимальный контроль над тем, что вы в конечном итоге видите.
Вот очень урезанный Plunker, просто показывая простую фильтрацию: Пример.