如何在集合中移动模型?

发布于 2025-01-06 05:27:07 字数 361 浏览 2 评论 0原文

假设我有一个普通的 Backbone.Collection,其中包含一些模型:

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

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

如何将集合中的模型移动 - 例如,将第 5 个模型移动到第 2 个位置?因此,无需按模型字段排序,而只需手动更改排序顺序。

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

Say I'm having a plain Backbone.Collection with some models in it:

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

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

How can I move a model within a collection - e.g. the 5th one to the 2nd position? So no sorting by a model field but just changing the sort order manually.

Note: I simplified the models Book1, .... They are of course Backbone.Models.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

前事休说 2025-01-13 05:27:07

您可以直接访问模型数组来修改顺序。大致基于这个问题 从一个数组移动数组元素位置到另一个,这样的东西应该可以工作:

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/

You can directly access the array of models to modify the order. Loosely based on this question Move an array element from one array position to another, something like this should work:

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"));

And a demo http://jsfiddle.net/nikoshr/5DGJs/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文