BackboneJS:对链接项的集合进行排序

时间:2013-02-23 23:18:03

标签: javascript backbone.js

我在弄清楚如何对包含链接项的BackboneJS集合进行排序时遇到了一些麻烦。 是否有效地做到了? (我正在考虑让一个人返回前面元素的数量,但这确实是低效的)

比较器应该是什么? - 是否需要双重链表?

我的项目看起来像

[ { id:1, 名称:'名称', previousItem:2 }, { id:2, 名称:'othername', previousItem:null } ]

2 个答案:

答案 0 :(得分:1)

以下是构建集合的基本代码。我假设你在这里使用Backbone模型。在循环中,您需要将模型添加到集合的前面(unshift),因为您只知道上一个项目。

这里的关键是知道最后一项是什么。如果您不知道,那么这将无效。

model = frontItem;
while (model != null) {
   collection.unshift(model);
   model = model.attr('previousItem')    
}

答案 1 :(得分:0)

github上有关于此问题的讨论,您也可以使用comparator,如果您想使用comparator,则需要使用下划线

var PhotoCollection = Backbone.Collection.extend({
    model: Photo,
    comparator: function(item) {
        return item.get('pid');
    }
});