在 AngularJS 中,一個控制器可以呼叫另一個控制器。有多種方法可以實現此目的,每種方法都有自己的優點和用例。
在提供的範例中,HTML 文件使用 MessageCtrl 控制器來顯示訊息。要從另一個控制器傳遞數據,您可以建立一個調解通訊的服務。
<br>angular.module('myApp', []).<br> service('DataService' , function() {<pre class="brush:php;toolbar:false">this.data = { date: new Date().toString() };
}).
控制器('MessageCtrl', ['$scope', 'DataService', function($scope, DataService) {
$scope.message = DataService.data.date;
}]).
控制器('DateCtrl', ['DataService', function(DataService) {
DataService.data.date = 'Custom date format';
}]);
在這種情況下,MessageCtrl有存取DataService,DateCtrl也使用它來修改日期格式。這確保了控制器之間的同步通訊。
另一種方法是在作用域上發出事件。當事件發出時,所有為該事件註冊了偵聽器的控制器都可以回應。
<br>angular.module('myApp', []).<br>controller(' MessageCtrl', ['$scope', function($scope) {<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');
}]);
在此範例中,DateCtrl發出MessageCtrl 偵聽的事件並透過更新其訊息來回應。這允許更具反應性的通訊模式。
這些只是 AngularJS 中實作控制器間通訊的幾種方法。最佳方法取決於您應用程式的特定要求。
以上是AngularJS 中控制器如何相互通訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!