Dalam AngularJS, satu pengawal boleh memanggil yang lain. Terdapat beberapa pendekatan untuk mencapai matlamat ini, masing-masing mempunyai kelebihan dan kes penggunaannya sendiri.
Dalam contoh yang disediakan, dokumen HTML menggunakan pengawal MessageCtrl untuk memaparkan mesej. Untuk menghantar data daripada pengawal lain, anda boleh membuat perkhidmatan yang menjadi pengantara komunikasi.
<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() };
}).
pengawal('MessageCtrl', ['$scope', 'DataService', function($scope, DataService) {
$scope.message = DataService.data.date;
}]).
controller('DateCtrl', ['DataService', function(DataService) {
DataService.data.date = 'Custom date format';
}]);
Dalam senario ini, MessageCtrl mempunyai akses kepada DataService, yang juga digunakan oleh DateCtrl untuk mengubah suai format tarikh. Ini memastikan komunikasi yang disegerakkan antara pengawal.
Kaedah lain ialah memancarkan peristiwa pada skop. Apabila acara dipancarkan, semua pengawal yang telah mendaftarkan pendengar untuk acara itu boleh bertindak balas.
<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');
}]);
Dalam contoh ini, DateCtrl memancarkan peristiwa yang MessageCtrl dengar dan balas dengan mengemas kini mesejnya. Ini membolehkan corak komunikasi yang lebih reaktif.
Ini hanyalah beberapa cara untuk mencapai komunikasi antara pengawal dalam AngularJS. Pendekatan terbaik bergantung pada keperluan khusus permohonan anda.
Atas ialah kandungan terperinci Bagaimanakah Pengawal Boleh Berkomunikasi Antara Satu Sama Lain dalam AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!