Backbone / Underscore sortBy sortiert keine Sammlung

8

Ich habe eine Liste von Benutzern (sechs um genau zu sein) in einer Sammlung mit den Eigenschaften 'Vorname', 'Nachname'. Beim Abrufen sortiert der Komparator sie nach 'Vornamen' und das funktioniert einwandfrei.

%Vor%

Aber wenn ich versuche, die Sammlung später durch einen anderen Wert, d. h. "Nachname", zu sortieren, funktioniert es nicht. Die Reihenfolge bleibt gleich.

%Vor%

Was mache ich falsch?


Aktualisieren

Die von sortBy zurückgegebenen Daten werden also sortiert, aber das hilft mir nicht wirklich, da meine Ansicht mit der Sammlung verknüpft ist. Wenn ich die Sammlung zurücksetze und das sortierte Array zurück zur Sammlung hinzufüge, wird der Vergleicher seinen Job ausführen und ihn wieder in die 'Vorname' Reihenfolge sortieren.

%Vor%     
screenm0nkey 21.03.2012, 11:07
quelle

3 Antworten

11

Die Funktion sortBy sortiert die Objekte in der aktuellen Sammlung nicht. Es gibt eine sortierte Sammlung zurück:

%Vor%

Jetzt können Sie sortedCollection verwenden und es wird korrekt sortiert.

    
Derick Bailey 21.03.2012, 11:41
quelle
13

Um auf Ihr Update zu antworten:

Wenn Sie die Reihenfolge ändern möchten, in der die Sammlung für die entsprechende Ansicht sortiert ist, können Sie einfach comparator aktualisieren und dann sort aufrufen, um das Modell neu sortieren zu lassen. Daraufhin wird ein sort -Ereignis ausgelöst, auf das Ihre Ansicht warten kann und das sich entsprechend aktualisiert.

%Vor%     
obmarg 21.03.2012 12:07
quelle
3

Underscore sortBy , das Backbone verwendet, gibt die sortierte Sammlung zurück, sortiert sie nicht an Ort und Stelle ... Zur Veranschaulichung:

%Vor%     
ggozad 21.03.2012 11:43
quelle

Tags und Links