2016-04-01 4 views
0

Сегодня я узнал, что метод Backbone.View listenTo предназначен для прослушивания событий trigger - путем изменения моделей или коллекций Backbone. Он не предназначен для прослушивания событий DOM.Остановка прослушивания событий DOM в магистральной сети

В связи с этим возникает следующий вопрос. В базовом документе говорится, что при представлении Backbone remove -ed он автоматически отпишет от всех событий, которые он прослушивал через listenTo. В нем конкретно не упоминается судьба слушателей, что взгляд на элементы DOM.

Итак, что происходит, когда вид прослушивания событий DOM удаляется? И есть ли разница между двумя следующими сценариями?

  • вид имеет events объект, который содержит список событий на дочерние узлы функции представления $el, которые слушают;

  • вид прослушивается для некоторых произвольных элементов DOM, а не для детей вида $el. эта ситуация отличается от предыдущей?

Считают ли слушатели в режиме просмотра отмену подписки на события DOM при удалении вида или они должны быть отписаны вручную?

+0

В первом сценарии , прослушиватели событий удаляются. Работа выполняется с помощью метода .remove() jQuery (https://api.jquery.com/remove/), к которому обращаются делегаты Backbone.View.prototype.remove. Во втором сценарии ваше представление должно явно вызывать .off() для произвольных элементов DOM. – 76484

ответ

1

вид имеет объект событий, который содержит список событий на дочерних узлах вида $ el, которые прослушиваются;

Они будут отклонены (удалены) позвоночником, когда вид будет удален правильно, используя метод удаления.

вид прослушивания некоторых произвольных элементов DOM, не обязательно детей из вида $el. эта ситуация отличается от предыдущей?

Существует нет встроенного способа использования этого позвоночника и не рекомендуется. Если вы сделаете это самостоятельно - некоторые элементы, содержащие прослушиватели событий, указывающие на методы на вашем представлении, о которых не известно, - вам нужно их очистить самостоятельно, это создаст виды зомби (утечки памяти)

Смежные вопросы