/ / Як переупорядкувати / замовити вкладені перегляди за допомогою програми Layoutmanager без повторного відтворення? - javascript, backbone.js, backbone-layout-manager

Як повторно сортувати / впорядковувати вкладені перегляди за допомогою Layoutmanager без повторного рендеринга? - javascript, backbone.js, магістральний менеджер магістра

Я працюю над проектом Backbone з Backbone.Layoutmanager.js

У мене з'явився ListView з вкладеними ReceiverViews.

Моя колекція оновлена ​​не упорядковано - я хочу сортувати ці погляди, АЛЕ я не хочу переробляти всю колекцію. (тому що я втрачаю старі обробники даних / подій / екземпляр графіка всередині старих представлень.)

Як виправити?

  ReceiverListView = Backbone.View.extend({
manage:true,
initialize: function(options){
_.bindAll(this, "renderReceiver","renderMe");
this.vent = _.extend({}, Backbone.Events);
this.collection.on("add", this.renderMe, this);

},
renderMe: function(model1){

this.collection.sort(this.collection.comparator);
this.insertView(new ReceiverView({model: model1})).render();
}

Відповіді:

0 для відповіді № 1

Вам не потрібно викликати метод сортування вручну. Дізнайтеся про це: http://backbonejs.org/#Collection-sort

initialize: function () {
this.listenTo(this.collection, "sort", _.bind(this.onSortCollection, this));
},

onSortCollection: function (collection) {
var views = {};

_.each(this.getViews(), function (view) {
if (view.model) views[view.model.cid] = view;
});

collection.each(function (model) {
var view = views[model.cid];

if (view) this.el.appendChild(view.el);
}, this);
}

Сподіваюся, це допоможе