在初始化中重新排序Backbone集合

时间:2012-02-20 21:33:56

标签: javascript backbone.js underscore.js

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

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

parent属性是我感兴趣的。我想将parent id为45的所有模型移动到集合的开头。可能有200个模型,也许30个拥有45的父级,15个拥有50的父级等等...我想保持我移动的块与之前的顺序相同(它由{命令) {1}}属性开头,我想保留原始顺序。)

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

使用下划线的groupBy

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

然后mysorted.top包含父亲45的所有内容。mySorted.rest显然包含其余部分;)

答案 1 :(得分:0)

在您的课程中定义新的comparator。这将使您的收藏保持您想要的任何顺序。