Entfernt das Entfernen eines DOM-Elements den zugehörigen Bereich?

9

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%     
Nick Heiner 20.11.2012, 20:56
quelle

1 Antwort

4

BEARBEITEN:

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)

Alte Antwort (Angular 1.0.X):

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

verwenden     
Ben Lesh 21.11.2012 03:22
quelle

Tags und Links