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?
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é :-)
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 ...