2014-07-10 15 views
9

Mam listę zdarzeń, które wyświetlam przy użyciu polecenia ng-repeat. Z każdego zdarzenia muszę uzyskać dostęp do poprzedniego i następnego zdarzenia z powodów wyświetlania HTML. Kiedy nie używać filtrów, to działa dobrze używającJak uzyskać dostęp do poprzedniego i następnego elementu w angularjs ng-repeat

events[$index - 1] 

Jednak gdybym filtrować i zmieniać kolejność zdarzeń używając

event in events | myMinDate: 'start':config.now | orderBy: 'start' 

nie mogę użyć tego techique, jak tablica zdarzenia nadal odnosi do oryginalnej (niefiltrowanej, nieposortowanej) struktury danych. To niefortunne, że nie ma tablicy danych filtrowanych danych lub czegoś w rodzaju $ previous i $ next.

Jakieś pomysły, w jaki sposób można to osiągnąć, nie dotykając rzeczywistej tablicy zdarzeń?

Odpowiedz

16

można zapisać wyniki filtra do nowej zmiennej:

event in filteredEvents = (events | myMinDate: 'start':config.now | orderBy: 'start') 

Następnie:

filteredEvents[$index - 1] 
+1

Wow, jesteś niesamowity - działa bardzo dobrze. Nigdzie nie mogłem tego znaleźć. Dzięki wielkie! – Onestone

Powiązane problemy