【问题标题】:How can I move a model within a collection?如何在集合中移动模型?
【发布时间】:2012-02-16 14:46:56
【问题描述】:

假设我有一个普通的Backbone.Collection,里面有一些模型:

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

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

如何在集合中移动模型 - 例如第 5 位到第 2 位?所以没有按模型字段排序,只是手动更改排序顺序。

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

【问题讨论】:

    标签: collections model backbone.js


    【解决方案1】:

    您可以直接访问模型数组来修改顺序。大致基于这个问题Move an array element from one array position to another,这样的事情应该可以工作:

    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/

    【讨论】:

    • 非常感谢!我完全忘记了collection.models 数组,并认为Collection 中一定有一些功能。我只见树木不见森林 ;-)
    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 2012-11-18
    • 2019-09-10
    • 2014-02-14
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多