Mam funkcję oglądania w mojej aplikacji AngularJS.
$scope.$watch('quartzCrystal', function () {
...
}
Jednak po pewnym warunku (w moim przykładzie zmianie strony w mojej aplikacji jednostronicowej ) chcę zatrzymać ten zegarek (jak na przykład usunięcie limitu czasu).
Jak mogę to zrobić?
javascript
angularjs
watch
kamaci
źródło
źródło
$on('$destroy')
), czy AngularJS zajmie się nimi? dzięki!scope. $ watch zwraca funkcję, którą możesz wywołać i która wyrejestruje zegarek.
Coś jak:
źródło
Możesz również wyczyścić zegarek wewnątrz oddzwaniania, jeśli chcesz go wyczyścić zaraz po tym, jak coś się stanie. W ten sposób Twój zegarek $ pozostanie aktywny do momentu użycia.
Tak jak ...
źródło
Kiedyś Twój $ watch dzwoni
dynamically
i utworzy swoje instancje, więc musisz wywołać funkcję wyrejestrowania przed swoją$watch
funkcjąźródło
Idealnie byłoby, gdyby każdy niestandardowy zegarek został usunięty po opuszczeniu lunety.
Pomaga w lepszym zarządzaniu pamięcią i lepszej wydajności aplikacji.
źródło
Jeśli masz za dużo obserwatorów i musisz wyczyścić wszystkich, możesz wepchnąć ich do tablicy i zniszczyć wszystko
$watch
w pętli.źródło
Aby odrzucić kopię obserwatora, możesz użyć tego:
źródło