J'ai une fonction de surveillance dans mon application AngularJS.
$scope.$watch('quartzCrystal', function () {
...
}
Cependant, après une certaine condition (dans mon exemple, changer la page dans mon application d'une seule page ), je veux arrêter cette surveillance (comme pour effacer le délai d'expiration).
Comment puis je faire ça?
javascript
angularjs
watch
kamaci
la source
la source
$on('$destroy')
) ou AngularJS s'en chargera? Merci!scope. $ watch renvoie une fonction que vous pouvez appeler et qui désinscrira la montre.
Quelque chose comme:
la source
Vous pouvez également effacer la montre à l'intérieur du rappel si vous souhaitez l'effacer juste après que quelque chose se soit produit. De cette façon, votre montre $ restera active jusqu'à son utilisation.
Ainsi...
la source
Quelque temps votre $ watch appelle
dynamically
et il va créer ses instances donc vous devez appeler la fonction de désenregistrement avant votre$watch
fonctionla source
Idéalement, chaque montre personnalisée doit être retirée lorsque vous quittez la lunette.
Il contribue à une meilleure gestion de la mémoire et à de meilleures performances des applications.
la source
Si vous avez trop d'observateurs et que vous devez tous les effacer, vous pouvez les pousser dans un tableau et les détruire tous
$watch
en boucle.la source
Pour supprimer la copie des observateurs, vous pouvez utiliser ceci:
la source