Ajax 主干-遍历集合,并按正确顺序渲染?

Ajax 主干-遍历集合,并按正确顺序渲染?,ajax,backbone.js,collections,views,Ajax,Backbone.js,Collections,Views,如何确保所有视图都以正确的顺序显示。由于使用了Ajax,第一个完成的将首先显示,我希望始终以正确的顺序显示 _.each(view.collection.models, function (category) { var productBlockListView = new ProductBlockListView({model: category}); productBlockListView.setElement(view.el).render(); }, this); 使用c

如何确保所有视图都以正确的顺序显示。由于使用了Ajax,第一个完成的将首先显示,我希望始终以正确的顺序显示

_.each(view.collection.models, function (category) {
   var productBlockListView = new ProductBlockListView({model: category});
   productBlockListView.setElement(view.el).render();
}, this);
使用comparator选项获取已排序的集合

var items = new Backbone.Collection([{
    firstName: 'Steve',
    lastName: 'Jobs'
}, {
    firstName: 'Bill',
    lastName: 'Gates'
}], {comparator: 'firstName'});

items.each(function(item) {
    console.log('%s %s', item.get('firstName'), item.get('lastName'));
});

你是什么意思?你不是一次提取整个集合吗?而setElementview.el是一种会把事件处理搞得一团糟的疯狂行为,为什么您的视图没有自己的el呢?不要uu.eachview.collection.models。。。当您可以查看时。集合。每个。。。。为什么视图处理不呈现它自己的集合?我应该使用什么来代替setElement?为什么最好使用view.collection.each…,而不是使用u.eachview.collection.models。。。?非常感谢您的回复。完全不要共享el,让每个视图都有自己独特的el,然后家长可以将它们放在他们应该去的页面上。使用集合。每个。。。比uu.eachcollection.models好。。。因为您应该避免弄乱某些东西的内部结构,所以尽可能使用提供的接口。问题是,el是动态的。在这个例子中,我可以这样做:var customEL=product block list-+view.model.getid;var productBlockView=newproductblockview{model:product,renderEl:customEL};然后每件产品都会送到正确的母公司。但我有一个问题,它们在不同的时间完成渲染,并且它们没有以正确的顺序显示,我可以做些什么来防止这种情况,集合中的顺序是可以的,但是当它们渲染时,它们是混合的:但它们将以与集合中相同的顺序渲染。你能在jsfiddle.net或jsbin.com上提供一个问题的功能演示吗?我的集合的顺序正确,但没有按该顺序呈现。也许你的.render方法是异步的?通过这种方式,您应该尝试使用承诺逐个呈现视图。