У вас нет повторной визуализации всего представления только потому, что что-то нужно уйти.
Вы могли бы иметь метод для удаления ломтя всего в один модели представления:
model_removed: function(m) {
// find m's chunk of the view inside this.$el
// and remove it.
this.$('whatever-selector-you-need').remove();
}
, а затем связать это с 'remove'
события:
this.listenTo(this.collection, 'remove', this.model_removed);
Демо: https://jsfiddle.net/ambiguous/fL0zr67s/
В качестве альтернативы , вы можете вложить свои представления так, чтобы у вас был один под-просмотр для каждой модели и общий вид коллекции. Представление коллекции создало и визуализировало представления модели по мере необходимости, а затем просто вызовет remove
на подзадаче в ответ на событие 'remove'
из коллекции.
Один из способов избежать этого - запустить обычное событие, когда все модели были удалены, и прослушать это пользовательское событие вместо того, чтобы слушать ваниль «удалить». –
Итак, как бы вы удалили несколько моделей? Есть ли где-то коллекция, которую вы очищаете? – kevin628
Вы уже ответили сами от того, что мы видим здесь. Если вы хотите больше, вам нужно быть конкретным. – Deryck