Angular: сработает ли сборщик мусора для директивы, после исчезновения объекта, к которому привязана директива?

К элементу привязана директива.
app.directive('myDirective',function(){
return{
   restrict:'ACE',
   link: function(scope, element){
     element.bind('click',function(){
      doSomething();
     });
   } 
}
});


<input type="text" my-directive value="">

Потом происходит переход на новую страницу, и элемента, к которому была привязана директива больше нет в DOM.

Вопрос: нужно ли делать unbind в директиве или сборщик мусора сам с этим разберется после исчезновения инпута из DOM?
  • Вопрос задан
  • 2325 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Об этом позаботится браузер (webview), так как если нету директивы, то нету и элемента к которому он привязан. Следовательно браузер сам удалит все обработчики событий вместе с удаляемым элементом.

В случае если директива вешает обработчики на что-то уровнем выше ($window, $document например) то да, тогда нужно делать unbind при событии $destroy у $scope.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы