Нужно ли отключать прослушиватели событий в директивах, когда angular начинает уничтожать?
В моем приложении сильно протекает память, но я не нашел причин, и вот фон.
Итак, вопрос
Нужно ли отключать этих слушателей в директивах, следуя этим?
scope.$on("$destroy", function() {
$(element).off();
});
Кстати, как вы обычно обнаруживаете утечку памяти в веб-приложении?
Я использую хром-профиль (см. Здесь Профилирование производительности памяти)
но я не мог отслеживать коды, в которых происходит утечка памяти. У вас есть предложения?
Спасибо большое!
Ответы
Ответ 1
Документация Angular для уничтожения области, подразумевает, что вам нужно удалить события DOM.
http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy
Обратите внимание, что в AngularJS также существует событие $destroy jQuery, которое может использоваться для очистки привязок DOM до удаления элемента из DOM.
Ответ 2
Я не согласен с принятым ответом, утечка памяти может иметь другие причины.
Отметьте это для отличного ответа: AngularJS - $destroy удаляет прослушиватели событий?