In Angular sind Bereiche DOM-Elementen zugeordnet. Wenn Sie $element.remove()
aufrufen, wird $element.scope().$destroy()
ebenfalls aufgerufen? Oder ist der Entwickler selbst für die Reinigung der Bereiche verantwortlich?
Das lässt mich denken, dass das Entfernen eines DOM-Elements den Bereich automatisch entfernen sollte:
angular.js
%Vor%Angular 1.2.X korrigiert JQuery, um $ destroy aufzurufen
Allerdings habe ich nicht getestet, um zu sehen, ob ich die gleichen Ergebnisse habe, die ich vorher gesehen habe.
(Danke @KumarHarsh, um dies in den Kommentaren zu erwähnen)
Nein, $element.remove()
entfernt den Bereich nicht, vermutlich weil der Bereich noch von anderen Bereichen referenziert wird.
Als Beweis können Sie ein Bereichselement aus einem verschachtelten Controller entfernen, dann den Bereich vom übergeordneten Controller laden und $$childHead
überprüfen, um zu sehen, ob der untergeordnete Bereich noch vorhanden ist.
Hier ist ein Plunk zum Demonstrieren
Sie können die Bereiche auch im Speicher anzeigen, indem Sie das Batarang-Plug-in für Chrome
verwendenTags und Links angularjs