"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment utiliser $on et $broadcast pour la communication événementielle dans Angular ?

Comment utiliser $on et $broadcast pour la communication événementielle dans Angular ?

Publié le 2024-11-08
Parcourir:298

How to Use $on and $broadcast for Event Communication in Angular?

Communication événementielle dans Angular : $on et $broadcast

Dans Angular, la communication événementielle est cruciale pour coordonner les interactions entre les différentes parties d'une application . $on et $broadcast sont des mécanismes angulaires de base qui permettent la diffusion et la gestion efficaces des événements entre les composants.

Comprendre $on et $broadcast

  • $broadcast : Émis par une portée pour notifier tous ses descendants (portées enfants) et la chaîne parent de la portée d'un événement spécifique.
  • $on : Enregistré par une portée pour écoutez les événements spécifiques diffusés à partir de la portée actuelle, de ses portées parents ou de ses portées enfants.

Implémentation de la communication d'événements dans votre exemple

Dans votre cas, vous souhaitez qu'un événement de clic dans le contrôleur de pied de page déclenche un événement qui peut être géré par le contrôleur du scanner de code. Pour y parvenir :

1. Diffuseur (footerController) :

  • Utilisez $rootScope pour diffuser l'événement, car il englobe toutes les étendues de l'application.
  • Définissez une fonction comme celle-ci dans le footerController :
$scope.startScanner = function() {
    $rootScope.$broadcast('scanner-started');
}

2. Récepteur (codeScannerController) :

  • Utilisez $on pour écouter l'événement de diffusion dans codeScannerController :
$scope.$on('scanner-started', function(event, args) {
    // Your logic here
});

Capacités supplémentaires :

  • Vous pouvez transmettre des arguments lors de la diffusion d'événements en utilisant $broadcast('event-name', { any: {} } ).
  • En conséquence, vous pouvez recevoir ces arguments dans le gestionnaire d'événements du destinataire.

Documentation de référence :

Pour des informations plus détaillées, reportez-vous à la documentation officielle d'Angular sur les scopes : https://docs.angularjs.org/api/ng/type/$rootScope.Scope

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3