Нужно ли отключать прослушиватели событий в директивах, когда angular начинает уничтожать?

В моем приложении сильно протекает память, но я не нашел причин, и вот фон.

  • Я использую AngularJS + JQuery (плагины)
  • Многие слушатели связаны следующим образом:

    $(element).on( "keyup", function() {});

Итак, вопрос

Нужно ли отключать этих слушателей в директивах, следуя этим?

scope.$on("$destroy", function() {
    $(element).off();
}); 

Кстати, как вы обычно обнаруживаете утечку памяти в веб-приложении? Я использую хром-профиль (см. Здесь Профилирование производительности памяти) но я не мог отслеживать коды, в которых происходит утечка памяти. У вас есть предложения?

Спасибо большое!

Ответ 1

Документация Angular для уничтожения области, подразумевает, что вам нужно удалить события DOM.

http://docs.angularjs.org/api/ng.$rootScope.Scope#$destroy

Обратите внимание, что в AngularJS также существует событие $destroy jQuery, которое может использоваться для очистки привязок DOM до удаления элемента из DOM.