Tengo una lista de usuarios (seis para ser exactos) en una colección con propiedades 'firstname', 'lastname'. Al hacer una búsqueda, el comparador a continuación los clasifica por 'firstname', y funciona bien.Backbone/Underscore tipoSi no está ordenando la colección
comparator : function (user) {
return user.get("firstname").toLowerCase();
}
Pero si trato de ordenar la recogida más tarde, por un valor diferente es decir, 'apellido', que no funciona. El orden permanece igual.
this.collection.sortBy(function(user) {
return user.get("lastname").toLowerCase();
});
¿Qué estoy haciendo mal?
actualización
Así que los datos devueltos por sortBy está ordenada pero eso no me ayuda realmente como mi punto de vista está vinculado a la colección. Si reinicio la colección y vuelvo a agregar la matriz ordenada a la colección, su comparador hace su trabajo y lo ordena de nuevo en el orden 'firstname'.
var sorted = this.collection.sortBy(function(user) {
return user.get("lastname").toLowerCase();
});
Gracias Derick. Y gracias por tu sitio. Es un gran recurso para desarrolladores. – screenm0nkey
¿No es que la función de comparación debe devolver un número entero? –
Tenga en cuenta que esto devuelve una lista y no una colección. No es un gran problema, pero vale la pena mencionarlo. – Chris