如何在集合中移动模型?

acm*_*cme 2 collections model backbone.js

假设我Backbone.Collection有一些简单的模型:

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

lib = new Library(
   [Book1, Book2, Book3, Book4, Book5, Book6]
]);
Run Code Online (Sandbox Code Playgroud)

如何在集合中移动模型 - 例如第5个到第2个位置?因此,不按模型字段排序,而只是手动更改排序顺序.

注意:我简化了模型Book1, ....他们当然Backbone.Model是s.

nik*_*shr 5

您可以直接访问模型数组来修改订单.松散地基于这个问题将数组元素从一个数组位置移动到另一个数组位置,这样的东西应该工作:

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"));
Run Code Online (Sandbox Code Playgroud)

和演示http://jsfiddle.net/nikoshr/5DGJs/