У меня есть список пользователей (шесть, если быть точным) в коллекции с свойствами «firstname», «lastname». Выполняя выборку, компаратор ниже сортирует их по «первому», и он отлично работает.Backbone/Underscore sortBy не сортирует коллекцию
comparator : function (user) {
return user.get("firstname").toLowerCase();
}
Но если я пытаюсь отсортировать коллекцию позже, другое значение, т.е. «фамилия», он не работает. Порядок остается прежним.
this.collection.sortBy(function(user) {
return user.get("lastname").toLowerCase();
});
Что я делаю неправильно?
Update
Таким образом, данные, возвращаемые из SortBy отсортирован, но это не помогает мне на самом деле, как моя точка зрения связана с коллекцией. Если я сброшу коллекцию и добавлю отсортированный массив обратно в коллекцию, то это компаратор выполнит ее работу и отсортирует ее в порядке «имя».
var sorted = this.collection.sortBy(function(user) {
return user.get("lastname").toLowerCase();
});
Спасибо Derick. И спасибо за ваш сайт. Это отличный ресурс разработчика. – screenm0nkey
не то, что функция компаратора должна возвращать целое число? –
Обратите внимание, что это возвращает список, а не коллекцию. Не так много, но стоит упомянуть. – Chris