在初始化中重新排序主干集合

Reorder Backbone collection in initialize

本文关键字:排序 集合 初始化 新排序      更新时间:2023-09-26

我正试图在视图的initialize函数中找到一种重新组织主干集合的方法。在我的收藏中,我有一些模型具有以下属性:

id: ...,
name: ...,
sort: 2,
parent: 45

parent属性是我感兴趣的。我想将parent id为45的所有模型移动到集合的开头。可能有200个模型,可能有30个具有45的父级,15个具有50的父级等等……我希望保持我移动的块与以前的顺序相同(它首先是由sort属性排序的,我希望保持原来的顺序)。

有什么想法吗?

使用下划线的groupBy

var mySorted = _.groupBy(collection.models, function (model) {
  return model.get('parent') === 45 ? 'top' : 'rest' ;
});

则CCD_ 5包含具有父级45的所有子级。mySorted.rest显然包含其余部分;)

在类上定义一个新的比较器。这将使您的收藏按您希望的任何顺序排列。