Как я могу переместить модель в коллекцию? - PullRequest
2 голосов
/ 16 февраля 2012

Скажем, у меня есть простая Backbone.Collection с некоторыми моделями в ней:

var Library = Backbone.Collection.extend({
    model: Book
});

lib = new Library(
   [Book1, Book2, Book3, Book4, Book5, Book6]
]);

Как я могу переместить модель в коллекции - например, 5-ю на 2-ю позицию?Поэтому не сортировка по полю модели, а просто изменение порядка сортировки вручную.

Примечание: я упростил модели Book1, ....Они конечно Backbone.Model с.

1 Ответ

5 голосов
/ 16 февраля 2012

Вы можете напрямую получить доступ к массиву моделей, чтобы изменить порядок. Свободно основываясь на этом вопросе Переместите элемент массива из одной позиции массива в другую , что-то вроде этого должно работать:

var c = new Backbone.Collection([{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5}]);
console.log(c.pluck("id"));

var from_ix = 4,
    to_ix = 1;
c.models.splice(to_ix, 0, c.models.splice(from_ix, 1)[0]);
console.log(c.pluck("id"));

И демо http://jsfiddle.net/nikoshr/5DGJs/

...