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
Lepaskan: 2024-12-05 09:48:11
asal
369 orang telah melayarinya

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>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">this.data = { date: new Date().toString() };
Salin selepas log masuk

}).
pengawal('MessageCtrl', ['$scope', 'DataService', function($scope, DataService) {

$scope.message = DataService.data.date;
Salin selepas log masuk

}]).
controller('DateCtrl', ['DataService', function(DataService) {

DataService.data.date = 'Custom date format';
Salin selepas log masuk

}]);

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>
<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;
});
Salin selepas log masuk

}]).
controller('DateCtrl', ['$scope', function($scope) {

$scope.$emit('dateUpdated', 'Custom date format');
Salin selepas log masuk

}]);

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!

sumber:php.cn
Artikel sebelumnya:Bagaimanakah Saya Boleh Berkongsi Pembolehubah Secara Berkesan Antara Pengawal AngularJS? Artikel seterusnya:Bagaimana untuk Mensimulasikan Klik dalam PhantomJS?
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Isu terkini
Topik-topik yang berkaitan
Lagi>
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan