2013-08-02 15 views
5

Aktualnie używam AngularJS w moim projekcie i nie jestem pewien, kiedy/jeśli muszę ręcznie odłączyć słuchaczy od zakresu $ (lub zakresu w którym na przykład funkcja łączenia dyrektywy).

Z dokumentacji, która nie jest najostrzejsza, przypuszczam, że NIE musisz rozłączać się z żadnymi słuchaczami na temat aktualnego zakresu, ale nie jestem pewien, czy musisz odłączyć się od słuchaczy na na przykład $ rootScope.

Zostanie docenione jakiekolwiek wyjaśnienie dotyczące cyklu życia komponentów takich jak dyrektywa czy kontroler dyrektywy.

Dzięki

Odpowiedz

5

Uchwyty kątowe, które dla Ciebie.

Gdy zakres jest zniszczony (na przykład, gdy nowy widok jest ładowany przez dyrektywę ng-view, stary zakres widzenia jest zniszczony) wszystkie jej zakresy potomne są niszczone, a ich obserwatorzy $ i słuchacze również zarejestrowani za pomocą $ on.

$ rootScope nie jest niszczony przez całe życie aplikacji, więc musisz zarządzać swoimi słuchaczami ręcznie, ale na ogół rejestrujesz tam rzeczy, które powinny być trwałe.

Podczas rejestrowania słuchaczy za pośrednictwem addEventListener należy usunąć je ręcznie, ponieważ nie jest zarządzany przez kątowe.

Powiązane problemy