所以我有一个非常基本的骨干集合和模型。我目前没有视图,因为我正在通过自定义模板呈现集合。我想做的是通过事件对集合进行排序(单击列标题)。该事件设置一个新的比较器,然后在集合上触发 .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 显示该集合仍处于其原始顺序,并且在单击公司标题时没有像我希望的那样由“公司”订购。有什么建议吗?谢谢!