所以我有一个非常基本的骨干集合和模型。我目前没有视图,因为我通过自定义模板渲染集合。我想要做的是通过一个事件(点击一个列标题)对集合进行排序。该事件设置一个新的比较器,然后触发该集合上的.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显示该集合仍处于其原始顺序,并且在单击公司标题时未被“公司”订购。有什么建议?谢谢!
答案 0 :(得分:0)
我在比较器功能中错过了return
。谢谢你指出这一点,安德鲁!