zu sortieren ich dies erfolgreich tun können:Richtige Art und Weise eine Backbone.js Sammlung on the fly
App.SomeCollection = Backbone.Collection.extend({
comparator: function(collection){
return(collection.get('lastName'));
}
});
das ist schön, wenn ich eine Sammlung haben will, die nur von ‚Nachnamen‘ sortiert. Aber ich muss diese Sortierung dynamisch durchführen lassen. Manchmal muss ich nach "firstName" sortieren.
Meine völlige Ausfälle sind:
Ich habe versucht, eine zusätzliche Variable geben die Variable sort()
auf angeben. Das hat nicht funktioniert. Ich habe auch versucht sortBy()
, die auch nicht funktioniert. Ich habe versucht, meine eigene Funktion zu sortieren(), aber das hat auch nicht funktioniert. Übergeben einer benutzerdefinierten Funktion an sortBy()
, nur um das Ergebnis nicht eine each
Methode zu haben, den Punkt zu besiegen, eine neu sortierte Rückgratsammlung zu haben.
Kann jemand ein praktisches Beispiel für die Sortierung durch eine Variable liefern, die nicht fest in die Komparatorfunktion kodiert ist? Oder irgendeinen Hack, der funktioniert? Wenn nicht, ein funktionierender sortBy()
Anruf?
Vielen Dank. Vorgeschlagene Implementierung und Varianten waren nicht erfolgreich, aber ich bin dankbar für die Antwort :). Ich glaube, ich vermisse hier etwas sehr Kleines. Ziemlich frustrierend. Ich lehne mich auf ein anderes Rahmenwerk für meine Javascript-Arbeit ab, wie viel Schwierigkeit ich mit einer einfachen Sortiervariante> habe. < – kikuchiyo
Ich bin dabei, dieses Problem selbst zu lösen. Meine App zeigt eine Tabelle an. Der Benutzer sortiert den Tabelleninhalt, indem er auf die Spaltennamen im Tabellenkopf klickt. Ich überlege, den Tabellenkopf zu einer Region mit einem eigenen "Sortier" -Modell zu machen. Das Modell wird die aktuelle "sortCriteria" verfolgen. Durch Klicken auf einen Spaltennamen wird sortCriteria aktualisiert. Ich werde eine Komparatorfunktion in der Sammlung haben. Es wird einfach die sortCriteria aus dem Sortiermodell erhalten. –
Die JSFiddles müssen aktualisiert werden, um einen Underscore und einen Backbone zu verwenden, die auf dem Server vorhanden sind. Die bei cdnjs.com sind gut. JSFiddle benutzt ihre eigenen, aber ich denke nicht mehr. Meine erste Einschätzung war ein wenig hart, aber ich denke, 'myModel' sollte durch den Parameter ersetzt werden, der an den Vergleicher übergeben wird, der jedes Modell in der Sammlung sein sollte. –