Когда ItemView прослушивает модель, отличную от своей модели (this.model), нужно ли мне просто отключить прослушиватели в функции remove? И установить их ссылку на ноль? Интересно, будет ли безопасно уничтожен ItemView или у меня будут проблемы позже, когда будет создано/уничтожено множество таких представлений?
Пример :
var FriendListItemView = Marionette.ItemView.extend({
[...]
initialize: function(){
Marionette.ItemView.prototype.initialize.apply(this, arguments);
// get the friend and the user from global "users" collection
this.user = users.get(this.model.get('user_id'));
this.friend = users.get(this.model.get('friend_id'));
this.user.on('change:name', this.render, this);
this.friend.on('change:name', this.render, this);
},
remove: function(){
this.user.off('change:name', this.render, this);
this.friend.off('change:name', this.render, this);
this.user = null;
this.friend = null;
Marionette.ItemView.prototype.remove.apply(this, arguments);
},
});