Ответ 1
Как только представление находится в DOM, вам не нужно удалять и добавлять его. Я думаю, что самый простой способ справиться с этим - удалить вставку DOM из представления в целом и позволить вызывающему абоненту view.render
позаботиться об этом.
Вид:
render: function() {
this.$el.html(this.template(model));
return this;
}
Caller (при первом рендеринге):
var view = new SomeView();
$('.target').append(view.render().el);
На последующих рендерах:
view.render();
После представления представления в DOM он может продолжать счастливо перерисовывать себя, не зная ничего о родительских представлениях. Связывание событий также должно оставаться неизменным между рендерами.