백본 비교기가 약간 구현되지 않아서 기본적으로 경로를 기반으로 다른 정렬 방법을 선택하고 비교기를 사용하여 컬렉션을 정렬하려고합니다. 이상적으로는 컬렉션 내에서 캡슐화 된 정렬 로직을 유지하고 싶지만 막히는 것처럼 보입니다. 예를 들어,올바르게 백본 비교기를 구현합니다.
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은 기능이 아닙니다')가 발생합니다. 어떤 아이디어가 있습니까?
대답은 좋았지 만 문제도 (답변을 이끌어 내기 위해) 약간의 사랑을받을 가치가있었습니다. : – jmk2142