0
Я хочу уничтожить просмотр и сделать другой вид модели. , но я не могу отменить функции, привязанные к модели из старого представления.backbone.js unbind function from model when destroy view
мой тестовый код
View = Backbone.View.extend({
initialize: function(){
this.model.bind('change',this.render);
},
destroy_view: function() {
//COMPLETELY UNBIND THE VIEW
this.undelegateEvents();
this.$el.removeData().unbind();
//Remove view from DOM
this.remove();
Backbone.View.prototype.remove.call(this);
},
});
и я сделал новую модель и вид, и я уничтожу вид как этот
view.destroy_veiw();
delete view;
но стил визуализации вызывается, когда модель изменилась
model.triger('change');
Я знаю model.unbind(); может решить эту проблему, но она отменит другие функции, я хочу использовать эту модель для другого представления. Как я могу это решить?
я предлагаю 'this.model.on ('изменение', this.render, этот);' (третий аргумент) вместо '_.bindAll (этого);', который может вызвать проблемы [] (https://github.com/documentcloud/backbone/issues/2080) в некоторых случаях, когда расширенный класс ожидает какой-либо другой контекст в каком-либо методе. Также предлагайте использовать 'this.listenTo (this.model, 'change', this.render)' вместо этого, поскольку метод View 'remove' по умолчанию уже вызывает' stopListening'. –