我在实现主干比较器时有点卡住了,我基本上想根据路由选择不同的排序方法并使用比较器对集合进行排序。理想情况下,我希望将排序逻辑封装在集合中,但似乎卡住了。例如
Requests = Backbone.Collection.extend({
model : Request,
comparator : function(ab) {
return -ab.id;
},
nooffers : function() {
return this.sortBy(function(ab) {
return ab.get('offers');
});
}
});
因此,默认情况下,它根据默认比较器进行排序 - 但在我的路由中,我希望能够诉诸例如做类似的事情
routes : {
"" : "index",
'/ordering/:order' : 'ordering'
},
ordering : function(theorder) {
ordering = theorder;
if(theorder == 'nooffers') {
Request.comparator = Request.nooffers();
}
Request.sort();
listView.render();
howitworksView.render();
}
但是,在这种情况下,我收到错误消息('c.call 不是函数')有什么想法吗?