web-dev-qa-db-fra.com

Comment puis-je arrêter $ de regarder dans AngularJS?

Je peux configurer une surveillance $ sur une portée AngularJS pour être averti lorsque l'expression qui m'intéresse a changé. Mais comment puis-je arrêter de regarder une fois que je perds tout intérêt?

74
Thilo

Lors de l'appel $watch une fonction est retournée qui désenregistre l'expression liée.

Par exemple, pour regarder une variable foo ne changer qu'une seule fois:

var unregister = $scope.$watch('foo', function () {
  // Do something interesting here ...
  unregister();
});

J'espère que ça t'as aidé :-)

141
Golo Roden

Comme commentaire supplémentaire, mais pas de réponse - c'est le même principe pour tuer aussi les auditeurs d'événements.

var unregister = $rootScope.$on("listen-for-something-cool", function($event, params) {
   //Do cool stuff with params, then kill it
   unregister();
};

Juste un ajout que je pensais que ce serait cool pour quelqu'un d'autre de savoir ...

20
Sten Muchow