Angularjs groupBy + orderBy

8

Ich verwende groupBy von angular-filter , um ein Array von Objekten anhand ihrer date -Eigenschaft zu gruppieren.

%Vor%

Was folgendes bewirkt:

%Vor%

Wie kann ich die Reihenfolge umkehren, um mit dem letzten Datum zu beginnen? Wenn ich auf die Konsole drucke, wird das Array in der gewünschten Reihenfolge gedruckt:

%Vor%

Ich habe auch einen benutzerdefinierten Filter geschrieben, um die Reihenfolge nach der groupBy umzukehren:

%Vor%

Was ich so angewendet habe:

%Vor%     
Shakur 12.02.2015, 09:26
quelle

5 Antworten

18

Kürzlich hatte das gleiche Problem. groupBy erzeugt ein Objekt, aber das orderBy benötigt ein Array, also ist ein bisschen Funkiness dabei. Ich habe die Antwort direkt von ihrer Ausgabenseite bekommen, wo einer der Autoren eine hervorragende Arbeit leistet, um sie komplett mit Codebeispielen zu erklären, die im Grunde für mich kopierbar waren.

Ссылка

    
aron.duby 20.02.2015, 08:13
quelle
2

Es scheint die richtige Methode zu sein, die | toArray: true | orderBy: customMappingFunction zu verwenden, jedoch fand ich die Leistung auf dieser Seite fürchterlich. Ich habe eine Lösung gefunden, die die Leistung aufrechterhält und das richtige Ergebnis liefert (obwohl es ein bisschen seltsam erscheint!)

%Vor%

Aus irgendeinem Grund erzwingt das Hinzufügen von - das groupBy korrekt zu sortieren, aber es fügt es auch zu key hinzu, sodass wir es einfach entfernen können!

    
Roi 28.07.2016 19:39
quelle
0

Wir können dies erreichen, indem wir die Daten in Controller & amp; Umwandlung von groupBy in Array.

Ordnen Sie die Datensätze im Controller an, bevor Sie sie zum Anzeigen senden:

%Vor%

Jetzt die Vorlage, empfängt Daten in sortierter Reihenfolge. Nach der Gruppierung müssen wir es in Array umwandeln:

%Vor%     
Sairam Krish 16.06.2015 11:18
quelle
-1

Eine einfache Möglichkeit, ein Array umzukehren, besteht darin, den Code aus dieser Antwort

zu verwenden %Vor%     
Chris 12.02.2015 09:43
quelle
-2

versuche es mit -

%Vor%

P.- Ich habe groupBy bis jetzt noch nirgendwo benutzt! Aber dieses Minus-Ding funktioniert gut mit dem Attribut orderBy!

    
Satyaki 18.02.2015 09:04
quelle