Was ist der richtige Weg in AngularJS Bindungen zu trennen?AngularJS - Entfernen Sie Bindungen, um Speicherlecks zu vermeiden
Ich habe eine nicht-eckige Anwendung, die eine Komponente lädt, die angularjs verwendet, um Daten zu binden. Irgendwann möchte ich die Komponente zerstören und sicher sein, dass es keine Speicherlecks gibt. Wie erkenne ich angular, um alle Ereignis-Listener aus diesem Teil des DOM zu entfernen?
Würde $(node).remove()
den Trick machen, oder tut eckig andere Dinge im Speicher, die aufgeräumt werden müssen ...? Alle anderen Tipps zur Vermeidung von mem-Lecks in eckigen würden geschätzt.
Danke für die schnelle Antwort! –
Die Dokumentation gibt an, dass es auch ein jQuery-Ereignis gibt, um den Bereich und das DOM-Element zu lösen, aber es gibt keinen beispielhaften Anwendungsfall. Ist es nur ein Fall, den Elementbereich zu finden, die Methode destroy aufzurufen und dann jquery remove() zu verwenden? Es erscheint seltsam, dass diese Funktionalität nicht als vollständige Funktion im Winkel existiert! – sidonaldson
Wenn Sie window.leak einen Bereich zuweisen und dann einen Konsolenanmeldebereich festlegen. $ On ('destroy', ...) Sie werden sehen, dass destroy aufgerufen wird, aber Sie können dennoch vom Leck auf den Bereich zugreifen. –