Показать текст один раз, используя ng-repeat с условием

0

Я хотел бы показать элемент только один раз в 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>
  • 0
    Вы хотите сказать, что хотите, чтобы он выбирал только одну вещь из итерации, или вы хотите, чтобы любая итерация появлялась один раз, даже если есть дубликаты?
  • 0
    Я хочу, чтобы вещи появлялись только один раз ... Да, даже если есть дубликаты ...
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ

Просто создайте фильтрованную версию массива событий и покажите это. Вы можете сделать функцию, которая ее очищает, и называть ее всякий раз, когда есть какое-то изменение, которое необходимо обновить (помещая его в $scope.$watch Функция $scope.$watch кажется самым простым способом сделать это). Это кажется низкотехнологичным, но это действительно дает вам максимальный контроль над тем, что вы в конечном итоге видите.

Вот очень урезанный Plunker, просто показывая простую фильтрацию: Пример.

  • 0
    У вас есть пример кода?
  • 0
    Я обновил свой ответ, чтобы включить образец Плункера.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню