Rumah > Soal Jawab > teks badan
Cara memindahkan data yang dijana oleh pengawal di dalam arahan kepada pengawal di luar arahan
漂亮男人2017-05-15 17:00:21
Mari kita bincangkan tentang tiga kaedah dahulu:
Jawapan di tingkat atas menggunakan komunikasi penyiaran, $emit
ke atas, $broadcast
ke bawah
service
Berkongsi data bermakna menyuntik service
yang sama ke dalam directive
dan controller
, dan kemudian mengendalikan data ini service
Sudah tentu, jika directive
anda berada di dalam controller
, anda boleh mengakses skop controller
(dengan syarat tiada skop bebas dibuat), terus dalam directive
controller
Just beroperasi scope
dan anda telah selesai
漂亮男人2017-05-15 17:00:21
$skop dalaman.$emit("pancarkan",data)
$skop luaran.$on("pancarkan",fungsi(ev,data){console.log(data)})
世界只因有你2017-05-15 17:00:21
Gunakan skop bebas, "=" pengikatan dua hala dan hantar data yang anda ingin ikat melalui parameter dalam arahan.
仅有的幸福2017-05-15 17:00:21
Terdapat banyak cara, bergantung pada cara anda ingin menggunakan data anda.
Pengedaran melalui langganan acara dan siaran
//$rootScope
$rootScope.$on('data-pass',function(event, data){ $rootScope.$broadcast('data-receive', data) })
// 传递数据的controller
$scope.$emit('data-pass', data)
// 需要数据的controller
$scope.$on('data-receiver', function(event, data){
// use data to do something
})
Tulis semula nilai sifat objek pada skop akar melalui ciri pewarisan $scope
// 根作用域
$rootScope.data = {}
// 传递数据的controller
$scope.data.record = {}
// 需要数据的controller
// use $scope.data.record to do something
Gunakan modul awam bersudut untuk penyimpanan data dan masukkannya ke dalam pengawal yang anda perlu gunakan
angular.factory('publicData',function(){
return {}
});
// 传递数据的controller
angular.controller('passController',function($scope, publicData){
publicData.record = {}
})
// 需要数据的controller
angular.controller('needController',function($scope, publicData){
// use publicData.record to do something
})