Ich erinnere mich daran, dass ich den Bereich für ein Element zerstören musste, bevor ich es aus dem DOM entfernte. Aber ich bin mir nicht sicher, wie das gemacht wird.Was muss ich vor dem Entfernen eines DOM-Elements in AngularJS tun?
So passiert es einfach, dass ich eine Direktive habe, die ein Element aus dem DOM entfernt. Eine abgespeckte Version würde wie folgt aussehen:
(function() {
angular.module('app').directive('remove', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.children().remove();
element.remove();
}
}
}]);
}());
Ein einfaches und unpraktisches Beispiel so etwas wie <my-directive-with-isolated-scope remove></my-directive-with-isolated-scope>
würde ich das Element entfernen kann, aber es scheint nicht, wie der Umfang zerstört wird, was ich Glauben würde ein Speicherleck richtig erstellen? Ich habe auch einen $interval
im Controller der Direktive gesetzt (der mit dem isolierten Bereich), wo ich eine Konsolenmeldung gesetzt habe, um als Test auszugeben. Und ich kann sehen, dass es, wenn es aus dem DOM entfernt wird, immer noch eine Konsolennachricht im festgelegten Intervall abmeldet.
Würde ich etwas in der obigen Richtlinie ändern, um das Element richtig zu entfernen?