Tôi đang gặp khó khăn khi thực hiện một bộ so sánh xương sống, về cơ bản tôi muốn chọn các phương pháp sắp xếp khác nhau dựa trên tuyến đường và sử dụng bộ so sánh để sắp xếp bộ sưu tập. Lý tưởng nhất là tôi muốn giữ logic phân loại được gói gọn trong bộ sưu tập nhưng dường như bị kẹt. Ví dụ:thực hiện chính xác các bộ so sánh xương sống
Requests = Backbone.Collection.extend({
model : Request,
comparator : function(ab) {
return -ab.id;
},
nooffers : function() {
return this.sortBy(function(ab) {
return ab.get('offers');
});
}
});
Vì vậy, theo mặc định, nó dựa trên so sánh mặc định - nhưng trong định tuyến của tôi, tôi muốn có thể sử dụng, ví dụ: làm một cái gì đó như
routes : {
"" : "index",
'/ordering/:order' : 'ordering'
},
ordering : function(theorder) {
ordering = theorder;
if(theorder == 'nooffers') {
Request.comparator = Request.nooffers();
}
Request.sort();
listView.render();
howitworksView.render();
}
Tuy nhiên trong trường hợp đó tôi gặp lỗi ('c.call không phải là một chức năng') bất kỳ ý tưởng nào?
Câu trả lời là tốt nhưng câu hỏi xứng đáng với một số tình yêu (để gợi ra câu trả lời.) :-) – jmk2142