2014-07-10 3 views
9

Ich habe eine Liste von Ereignissen, die ich mit ng-repeat anzeigen. Von jedem Ereignis muss ich auf das vorherige und nächste Ereignis für HTML-Anzeigegründe zugreifen. Wenn ich Filter nicht verwenden, funktioniert dies gutWie auf das vorherige und das nächste Element in angularjs ng-repeat zugreifen

events[$index - 1] 

jedoch verwenden, wenn ich filtern und wieder, um die Ereignisse

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

verwendet, kann ich diese techique nicht verwenden, da das Array noch Ereignisse bezieht zur ursprünglichen (ungefilterten, unsortierten) Datenstruktur. Es ist bedauerlich, dass es kein Daten-Array der gefilterten Daten oder etwas wie $ voriges und $ nächstes gibt.

Irgendwelche Ideen, wie dies erreicht werden kann, ohne das tatsächliche Ereignisarray zu berühren?

Antwort

16

Sie können die Ergebnisse des Filters in eine neue Variable speichern:

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

Dann:

filteredEvents[$index - 1] 
+1

Wow, Sie sind erstaunlich - sehr gut funktioniert. Ich konnte das nirgendwo finden. Vielen Dank! – Onestone