だから私は非常に基本的なバックボーン コレクションとモデルを持っています。カスタム テンプレートを使用してコレクションをレンダリングしているため、現在ビューがありません。私がやりたいのは、コレクションをイベント (列ヘッダーをクリック) で並べ替えることです。このイベントは新しいコンパレータを設定し、コレクションに対して .sort() メソッドを起動します。ただし、.sort() の後にコレクション データをダンプすると、コレクションは同じ順序になります。私はバックボーンとコレクションに慣れていないので、何かが足りないかもしれません。これが私のコードです:
var TicketCollection = Backbone.Collection.extend({
model : TicketModel,
initialize : function() {
},
fetch : function(options) {
options = options ? options : {};
var self = this;
$.ajax({
url : "/getTickets",
data : {},
method : "POST",
cache : false,
dataType : "json",
success : function(Json) {
self.reset(Json);
},
complete : options.complete
});
},
render : function() {
var self = this;
Base.renderTemplate({el : $("#ticketListContainer"), Template : "ticketList", data : {tickets : this.toJSON()}});
$("#ticketList").find("#tdHeadCompany").click(function() {
self.comparator = function(ticket) {
ticket.get("company");
};
self.sort();
console.log(JSON.stringify(self.toJSON()));
});
},
comparator : function(ticket) {
return ticket.get("number");
}
});
console.log は、コレクションが元の順序のままであることを示しており、会社のヘッダーをクリックしたときに希望どおりに「会社」によって順序付けられていません。何かアドバイス?ありがとう!