0

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

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

我的物品看起来像

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

4

2 回答 2

1

这是构建集合的基本代码。我假设您在这里使用的是主干模型。在循环中,您需要将模型添加到集合的前面(取消移位),因为您只知道前一项。

这里的关键是知道最后一项是什么。如果你不知道,那么这将不起作用。

model = frontItem;
while (model != null) {
   collection.unshift(model);
   model = model.attr('previousItem')    
}
于 2013-02-23T23:41:09.390 回答
0

github上有关于这个的讨论,你也可以使用比较器,如果你想使用比较器,你需要下划线

var PhotoCollection = Backbone.Collection.extend({
    model: Photo,
    comparator: function(item) {
        return item.get('pid');
    }
});
于 2013-02-23T23:24:35.927 回答