Javascript 主干网中的比较器在添加新模型时需要sort调用?
我在Backbone.Collection中定义了比较器 当我向该集合添加模型时,我应该调用sort方法吗Javascript 主干网中的比较器在添加新模型时需要sort调用?,javascript,backbone.js,Javascript,Backbone.js,我在Backbone.Collection中定义了比较器 当我向该集合添加模型时,我应该调用sort方法吗 this.collection.add(this.newModel); this.collection.sort(); // should I add this line? 根据文档,没有,但我的应用程序似乎需要它。有什么想法吗 我添加了..但我有另一个问题..知道如何解决吗?不,从比较器函数返回对象时使用负号。这是对元素进行排序的另一种方法 //Model compar
this.collection.add(this.newModel);
this.collection.sort(); // should I add this line?
根据文档,没有,但我的应用程序似乎需要它。有什么想法吗
我添加了..但我有另一个问题..知道如何解决吗?不,从比较器函数返回对象时使用负号。这是对元素进行排序的另一种方法
//Model
comparator: function(activity){
var date = new Date(activity.get('created_at'));
return -date.getTime();
}
//View
events : {
'click .refresh' : 'refresh',
'click .reverse' : 'reverse'
},
refresh : function() {
this.collection.fetch();
console.log('refresh', this.collection);
this.render();
},
reverse : function() {
var $ref = $(".notifyRefresh");
console.log("you clicked reverse");
console.log(this.collection, "collection");
this.collection.sort();
}
不需要调用
sort()
,每个集合插入都使用comparator()
方法
检查
你的问题应该在其他地方。你能在JSFIDLE中重现这个问题吗?@fguillen我补充道。但我还有一个问题……你知道如何解决吗?你使用的是旧的时尚主干版本。检查它是否按预期工作。我已经在使用负号了。事实上,当我第一次获取集合时,数据被排序。但是当我尝试添加模型时,我遇到了问题。如果我调用sort方法,它会工作!!是的,那么您必须调用.sort()。我是在我的视图中这样做的。但是,只有当您在现有模型上设置属性时,才需要根据文档排序!我补充道……但我还有一个问题……你知道怎么解决吗?是的,你肯定是对的。现在我需要找出问题所在。知道如何找到它吗?试着用尽可能少的代码重现这个问题,并在JSFIDLE中复制它。这是我们能帮助你的唯一方法。