Maison > interface Web > js tutoriel > Comment les contrôleurs peuvent-ils communiquer entre eux dans AngularJS ?

Comment les contrôleurs peuvent-ils communiquer entre eux dans AngularJS ?

DDD
Libérer: 2024-12-05 09:48:11
original
370 Les gens l'ont consulté

How Can Controllers Communicate with Each Other in AngularJS?

Communication inter-contrôleurs dans AngularJS

Dans AngularJS, il est possible qu'un contrôleur en appelle un autre. Il existe plusieurs approches pour y parvenir, chacune avec ses propres avantages et cas d'utilisation.

Injection de dépendances

Dans l'exemple fourni, le document HTML utilise le contrôleur MessageCtrl pour afficher un message. Pour transmettre des données d'un autre contrôleur, vous pouvez créer un service qui assure la médiation de la communication.

<br>angular.module('myApp', []).<br> service('DataService' , function() {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">this.data = { date: new Date().toString() };
Copier après la connexion

}).
contrôleur('MessageCtrl', ['$scope', 'DataService', fonction($scope, DataService) {

$scope.message = DataService.data.date;
Copier après la connexion

}]).
contrôleur('DateCtrl', ['DataService', fonction(DataService) {

DataService.data.date = 'Custom date format';
Copier après la connexion

}]);

Dans ce scénario, MessageCtrl a accès à le DataService, qui est également utilisé par DateCtrl pour modifier le format de date. Cela garantit une communication synchronisée entre les contrôleurs.

Événements de portée

Une autre méthode consiste à émettre des événements sur la portée. Lorsqu'un événement est émis, tous les contrôleurs qui ont enregistré un écouteur pour cet événement peuvent répondre.

<br>angular.module('myApp', []).<br> contrôleur(' MessageCtrl', ['$scope', fonction($scope) {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$scope.$on('dateUpdated', function(event, newDate) {
  $scope.message = newDate;
});
Copier après la connexion

}]).
contrôleur('DateCtrl', ['$scope', function($scope) {

$scope.$emit('dateUpdated', 'Custom date format');
Copier après la connexion

}]);

Dans cet exemple, DateCtrl émet un événement que MessageCtrl écoute et auquel il répond en mettant à jour son message. Cela permet un modèle de communication plus réactif.

Ce ne sont là que quelques-unes des façons d'établir une communication entre contrôleurs dans AngularJS. La meilleure approche dépend des exigences spécifiques de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Article précédent:Comment puis-je partager efficacement des variables entre les contrôleurs AngularJS ? Article suivant:Comment simuler un clic dans PhantomJS ?
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal