我在弄清楚如何对包含链接项的BackboneJS集合进行排序时遇到了一些麻烦。 是否有效地做到了? (我正在考虑让一个人返回前面元素的数量,但这确实是低效的)
比较器应该是什么? - 是否需要双重链表?
我的项目看起来像
[ { id:1, 名称:'名称', previousItem:2 }, { id:2, 名称:'othername', previousItem:null } ]
答案 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');
}
});