2016-04-25 5 views
0

Ich habe eine Tabelle, um die Ergebnisse bestimmter Teams anzuzeigen, jede Mannschaft hat zwei Werte - PTS (Punkte) und GD (Tordifferenz).Reihenfolge ng-repeat von mehreren Eigenschaften

Daten sieht etwa wie folgt aus:

A: PTS=3, GD=+3, 
B: PTS=2, GD=+1, 
C: PTS=2, GD=-1, 
D: PTS=0, GD=-1 

Ich zeige sie über ng-repeat wollen, in der Reihenfolge der PTS in erster Linie (wie oben). Aber wenn eine Mannschaft mit einer anderen nach Punkten gleich ist, muss sie von GD entschieden werden (Tordifferenz). Schließlich, wenn auch diese andere sie sortieren, möchte ich, dass sie auf die alphabetische Reihenfolge zurückfällt.

Ich weiß, wie Sie OrderBy verwenden, und dann können Sie einfach die teamName Propery (A, B, C) usw. verwenden, um sie zu bestellen.

Ich vermute, es so etwas wie das Erstellen eines benutzerdefinierten ist orderby etwas wie folgt filtern:

orderBy="{{pts || gd || teamName}}" 

Ich bin zwar der Syntax nicht sicher, oder wo Sie diesen Code setzen. Kann ich die obige Logik an eine Variable anhängen und diese dann in orderBy aufrufen? Oder ist es ein Filter?

Jede Hilfe mit diesem würde geschätzt werden.

+0

https://docs.angularjs.org/api/ng/filter/orderBy –

Antwort

0

Um orderBy mit mehreren Feldern verwenden, können Sie diese Felder in Array hinzuzufügen haben wie [ 'pst', 'gd', 'Teamname']

Nun Daten:

 A: PTS=3, GD=+3, 
     B: PTS=2, GD=+1, 
     C: PTS=2, GD=-1, 
     D: PTS=0, GD=-1 

wenn betrachten "A", "B", "C" & "D" sind Teamnamen.

  • Teamname ->aufsteigend bestellen
  • gd ->aufsteigend bestellen
  • pts ->absteigend bestellen

dann orderBy Syntax:

 orderBy:['-pst', 'gd', 'teamName'] 

*** "-pst" wird verwendet, um pst-Elemente in absteigender Reihenfolge anzuzeigen

Verwandte Themen