Eu tenho uma função de relógio no meu aplicativo AngularJS.
$scope.$watch('quartzCrystal', function () {
...
}
No entanto, após alguma condição (no meu exemplo, alterar a página no meu aplicativo de página única) ), desejo interromper o relógio (como limpar o tempo limite).
Como eu posso fazer isso?
javascript
angularjs
watch
kamaci
fonte
fonte
$on('$destroy')
) ou o AngularJS cuidará deles? obrigado!$ watch retorna uma função que você pode chamar e que cancelará o registro do relógio.
Algo como:
fonte
Você também pode limpar o relógio dentro do retorno de chamada se quiser limpá-lo logo após algo acontecer. Dessa forma, seu $ watch permanecerá ativo até ser usado.
Igual a...
fonte
Algum tempo o seu $ watch está chamando
dynamically
e ele cria suas instâncias para que você precise chamar a função de cancelamento de registro antes da sua$watch
funçãofonte
Idealmente, todo relógio personalizado deve ser removido quando você sair do escopo.
Ajuda no melhor gerenciamento de memória e no melhor desempenho do aplicativo.
fonte
Se você tiver muitos observadores e precisar limpá-los, poderá inseri-los em uma matriz e destruir todos os
$watch
em um loop.fonte
Para descartar a cópia dos observadores, você pode usar o seguinte:
fonte