In AngularJS ist es möglich, dass ein Controller einen anderen aufruft. Es gibt mehrere Ansätze, um dies zu erreichen, jeder mit seinen eigenen Vorteilen und Anwendungsfällen.
Im bereitgestellten Beispiel verwendet das HTML-Dokument den MessageCtrl-Controller, um eine Nachricht anzuzeigen. Um Daten von einem anderen Controller zu übergeben, könnten Sie einen Dienst erstellen, der die Kommunikation vermittelt.
<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() };
}).
controller('MessageCtrl', ['$scope', 'DataService', function($scope, DataService) {
$scope.message = DataService.data.date;
}]).
controller('DateCtrl', ['DataService', function(DataService) {
DataService.data.date = 'Custom date format';
} ]);
In diesem Szenario hat MessageCtrl Zugriff auf den DataService, der auch von DateCtrl verwendet wird um das Datumsformat zu ändern. Dies stellt eine synchronisierte Kommunikation zwischen den Controllern sicher.
Eine andere Methode besteht darin, Ereignisse auf dem Scope auszugeben. Wenn ein Ereignis ausgegeben wird, können alle Controller antworten, die einen Listener für dieses Ereignis registriert haben.
<br>angular.module('myApp', []).<br> controller(' MessageCtrl', ['$scope', function($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; });
}]).
controller('DateCtrl', ['$scope', function($scope) {
$scope.$emit('dateUpdated', 'Custom date format');
}]);
In diesem Beispiel DateCtrl gibt ein Ereignis aus, auf das MessageCtrl lauscht und auf das es mit der Aktualisierung seiner Nachricht reagiert. Dies ermöglicht ein reaktiveres Kommunikationsmuster.
Dies sind nur einige der Möglichkeiten, um die Kommunikation zwischen Controllern in AngularJS zu erreichen. Der beste Ansatz hängt von den spezifischen Anforderungen Ihrer Anwendung ab.
Das obige ist der detaillierte Inhalt vonWie können Controller in AngularJS miteinander kommunizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!