Ho una lista di utenti (sei per essere precisi) in una collezione con proprietà 'firstname', 'lastname'. Facendo un recupero, il comparatore qui sotto li ordina per "nome" e funziona perfettamente.Backbone/Underscore sortBy non ordina la raccolta
comparator : function (user) {
return user.get("firstname").toLowerCase();
}
Ma se cerco di ordinare la raccolta più tardi, da un valore diverso vale a dire 'cognome', non funziona. L'ordine rimane lo stesso.
this.collection.sortBy(function(user) {
return user.get("lastname").toLowerCase();
});
Cosa sto facendo di sbagliato?
Aggiornamento
Così i dati restituiti dal sortby è ordinato ma questo non mi aiuta veramente come mio punto di vista è legata alla raccolta. Se reimposta la raccolta e aggiungo di nuovo l'array ordinato alla raccolta, il comparatore è il suo lavoro e lo ordina di nuovo nell'ordine 'firstname'.
var sorted = this.collection.sortBy(function(user) {
return user.get("lastname").toLowerCase();
});
Grazie Derick. E grazie per il tuo sito. È una grande risorsa per gli sviluppatori. – screenm0nkey
non è che la funzione comparatore debba restituire un intero? –
Si noti che questo restituisce un elenco e non una raccolta. Non è un affare enorme ma vale la pena menzionare. – Chris