0
所以我有一个非常基本的骨干收集和模型。我目前没有视图,因为我通过自定义模板呈现了该集合。我想要做的是通过事件对集合进行排序(单击列标题)。事件设置一个新的比较器,然后在集合上触发.sort()方法。但是,当我在.sort()之后转储收集数据时,collect的顺序相同。我对骨干和集合很陌生,所以也许我错过了一些东西。这里是我的代码:动态排序在骨干收集不起作用
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显示垃圾收集仍处于原始顺序,而不是被“公司”订购的点击公司头时,我想。有什么建议?谢谢!
你在新函数中缺少一个'return'语句。 – Andrew