Logo AngularJS

Tricks AngularJS : supprimer un listener d’évènements

Flattr this!

Dans la série des billets sur les petites astuces AngularJS, je vous propose ceci aujourd'hui : pouvoir arrêter d'écouter un évènement.

Le besoin est le suivant :

Vous souhaitez utiliser le patern pub/sub pour gérer un évènement. Le problème est que vous ne souhaitez pas le faire durer dans le temps. Par exemple, que votre callback soit appelé une seule fois et pas plus.

L'astuce est simple. C'est la fonction de création du listener qui retourne la fonction que vous devez appeler pour ne plus écouter cet évènement. Voilà un exemple :

var unregister = $scope.$on('MonEvent', function (event) {
                            unregister();
                            // le code de votre callback
                        });

Cette astuce marche aussi bien sur $watch que sur $on.

Vous pouvez retrouver un peu plus de détails sur cette fonctionnalité en jetant un oeil sur ce ticket lui aussi avec des exemples de code.

Flattr this!

A propos de Mathieu

Ingénieur développeur web dans la vente par correspondance B2B, adepte de nouvelles technologies et d'innovation. Vous pouvez aussi me retrouver sur Twitter @mathrobin
Cette entrée a été publiée dans AngularJS, avec comme mot(s)-clef(s) , . Vous pouvez la mettre en favoris avec ce permalien.
  • Nico

    Ca me fait un peu penser au fonctionnement de hp-ux, ou à contrario, et en C cette fois, tu devais rappeler la fonction ‘signal’ après chaque interception d’event!

    • http://www.mathieurobin.com/ Mathieu

      Si tu le dis. J’avoue ne pas avoir les compétences là pour le coup :s
      J’ai préféré oublié mes cours de C, j’ai vraiment pas aimé travailler avec.

Articles liés