Heim >Web-Frontend >js-Tutorial >Wie erleichtern „$scope.$emit' und „$scope.$on' die Kommunikation zwischen Controllern in AngularJS?
Arbeiten mit $scope.$emit und $scope.$on
In AngularJS kann die Kommunikation zwischen Controllern mithilfe von $scope erreicht werden .$emit- und $scope.$on-Methoden. Diese Methoden erleichtern die ereignisbasierte Kommunikation und ermöglichen die Übertragung von Daten oder Signalen von einem Controller zu einem anderen.
$scope.$emit und $scope.$on: Erklärt
Eltern-Kind-Scope-Beziehung ist wichtig
Die Wirksamkeit dieser Methoden hängt von der Eltern-Kind-Beziehung zwischen den Scopes ab die beteiligten Verantwortlichen. Es stehen zwei Arten des Ereignisversands zur Verfügung:
Beispielszenarien
1. Beziehung zwischen übergeordnetem und untergeordnetem Bereich:
Wenn der Bereich des ersten Controllers ($scope.$emit) ein übergeordneter Bereich des zweiten Controllers ($scope.$on) ist, sollte der folgende Code funktionieren:
function firstCtrl($scope) { $scope.$broadcast('someEvent', [1, 2, 3]); } function secondCtrl($scope) { $scope.$on('someEvent', function(event, mass) { console.log(mass); }); }
2. Keine Beziehung zwischen übergeordnetem und untergeordnetem Bereich:
Wenn keine Beziehung zwischen übergeordnetem und untergeordnetem Bereich besteht, können Sie $rootScope in den Controller einfügen und das Ereignis an alle untergeordneten Bereiche übertragen:
function firstCtrl($rootScope) { $rootScope.$broadcast('someEvent', [1, 2, 3]); }
3. Weiterleiten vom untergeordneten zum übergeordneten Controller:
Um ein Ereignis von einem untergeordneten Controller an einen übergeordneten Controller zu senden, verwenden Sie $scope.$emit. Wenn der Bereich des ersten Controllers ($scope.$on) ein übergeordneter Bereich des zweiten Controllers ($scope.$emit) ist:
function firstCtrl($scope) { $scope.$on('someEvent', function(event, data) { console.log(data); }); } function secondCtrl($scope) { $scope.$emit('someEvent', [1, 2, 3]); }
Durch Verständnis der Funktionsweise von $scope.$emit und $scope. Bei der Arbeit können Sie effektiv zwischen Controllern in Ihren AngularJS-Anwendungen kommunizieren.
Das obige ist der detaillierte Inhalt vonWie erleichtern „$scope.$emit' und „$scope.$on' die Kommunikation zwischen Controllern in AngularJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!