2013-08-02 8 views
5

Ich verwende AngularJS derzeit auf einem Projekt von mir und ich bin unsicher, wann/wenn ich Listener manuell auf den $ Scope (oder Bereich wenn in die Verknüpfungsfunktion einer Direktive zum Beispiel).

Aus der Dokumentation, die nicht die klarste ist, würde ich vermuten, dass Sie nicht auf Listener auf dem aktuellen Bereich zu lösen müssen, aber ich bin mir nicht sicher, ob Sie auf Listener auf unbind müssen sagen wir, das $ rootScope zum Beispiel.

Jede Klärung des Lebenszyklus von Komponenten, wie z. B. einer Richtlinie oder einem Controller der Richtlinie, wäre wünschenswert.

Dank

Antwort

5

Winkelgriffe, die für Sie.

Wenn der Bereich zerstört wird (zum Beispiel, wenn neue Ansicht über die ng-view-Direktive geladen wird, wird der Bereich der alten Ansicht zerstört), werden alle untergeordneten Bereiche zerstört und ihre $ Beobachter und Listener ebenfalls über $ on registriert.

$ rootScope wird während der gesamten Lebensdauer Ihrer Anwendung nicht zerstört, Sie müssen also ihre Listener manuell verwalten, aber normalerweise registrieren Sie dort Dinge, die permanent sein sollten.

Wenn Sie Listener über addEventListener registrieren, müssen Sie sie manuell entfernen, da sie nicht über angular verwaltet werden.