一个backbone collection已经初始化后,我该如何更改其排序顺序?
我尝试了以下代码,但无效:
collection.comparator = function () {
// new function
}
collectionObject.sort()
一个backbone collection已经初始化后,我该如何更改其排序顺序?
我尝试了以下代码,但无效:
collection.comparator = function () {
// new function
}
collectionObject.sort()
我认为您没有正确定义比较器。如果您定义了比较器,对象将按正确顺序插入集合中。
这里是一个例子,您可以在加载了Backbone的网站上通过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"]
注意比较器返回每个章节页面属性中存储的值。Backbone的集合排序类似于使用字符串或整数的sortBy,不遵循传统的-1、0、1比较器方法。
chapters.comparator = 'page'
。http://backbonejs.org/#Collection-comparator - Joshuacollection.comparator = function (item) {
return item.get('field');
};
collection.sort();
collection
和collectionObject
如何定义? - hyperslug