Rumah >hujung hadapan web >tutorial js >Bagaimanakah Pengawal Boleh Berkomunikasi Antara Satu Sama Lain dalam AngularJS?

Bagaimanakah Pengawal Boleh Berkomunikasi Antara Satu Sama Lain dalam AngularJS?

DDD
DDDasal
2024-12-05 09:48:11366semak imbas

How Can Controllers Communicate with Each Other in AngularJS?

Komunikasi Antara Pengawal dalam AngularJS

Dalam AngularJS, satu pengawal boleh memanggil yang lain. Terdapat beberapa pendekatan untuk mencapai matlamat ini, masing-masing mempunyai kelebihan dan kes penggunaannya sendiri.

Suntikan Ketergantungan

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>
<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.

Peristiwa Skop

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>
<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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn