Har*_*rry 6 javascript sorting backbone.js
如何在骨干集合初始化之后更改它的排序顺序?
试过这个:不行
collection.comparator = function () {
// new function
}
collectionObject.sort()
Run Code Online (Sandbox Code Playgroud)
我认为您没有正确定义比较器。如果定义比较器,对象将以正确的顺序插入到集合中。
下面是一个示例,您可以在已加载主干的站点上运行 Firebug:
var Chapter = Backbone.Model;
var chapters = new Backbone.Collection;
chapters.comparator = function(chapter) {
return chapter.get("page");
};
chapters.add(new Chapter({page: 9, title: "The End"}));
chapters.add(new Chapter({page: 5, title: "The Middle"}));
chapters.add(new Chapter({page: 1, title: "The Beginning"}));
chapters.pluck('title');
# OUTPUT
# ["The Beginning", "The Middle", "The End"]
Run Code Online (Sandbox Code Playgroud)
请注意比较器如何返回存储在每个章节的页面属性中的值。Backbone 的集合排序就像使用字符串或整数的 sortBy 一样,并且不遵循传统的 -1,0,1 比较器方法。