Я помню, как слышал о необходимости уничтожить область действия над элементом, прежде чем удалять ее из DOM. Но я не совсем уверен, как это делается.Что делать, прежде чем удалять элемент DOM в AngularJS?
Так получилось, что у меня есть директива, которая удаляет элемент из DOM. Урезанная версия будет выглядеть так:
(function() {
angular.module('app').directive('remove', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.children().remove();
element.remove();
}
}
}]);
}());
Простой и непрактичный пример может быть что-то вроде <my-directive-with-isolated-scope remove></my-directive-with-isolated-scope>
я могу удалить элемент, но это не похоже, сфера разрушается, что я верят, что это создаст утечку памяти? Я также установил $interval
в контроллере директивы (один с изолированной областью), где я установил консольное сообщение для выхода в качестве теста. И я вижу, что когда он удаляется из DOM, он все равно выдает консольное сообщение с заданным интервалом.
Могу ли я изменить что-то в директиве выше, чтобы правильно удалить элемент?