$scope.$emit と $scope.$on の操作
AngularJS では、コントローラー間の通信は $scope を使用して実現できます。 .$emit メソッドと $scope.$on メソッド。これらのメソッドはイベントベースの通信を促進し、あるコントローラーから別のコントローラーにデータや信号をブロードキャストできるようにします。
$scope.$emit および $scope.$on: 説明
親子スコープ関係が重要
これらのメソッドの有効性は、関係するコントローラーのスコープ間の親子関係。 2 種類のイベント ディスパッチが利用可能です:
シナリオ例
1.スコープの親子関係:
最初のコントローラー ($scope.$emit) のスコープが 2 番目のコントローラー ($scope.$on) の親である場合、次のコードは機能します。
function firstCtrl($scope) { $scope.$broadcast('someEvent', [1, 2, 3]); } function secondCtrl($scope) { $scope.$on('someEvent', function(event, mass) { console.log(mass); }); }
2.親子関係がないスコープ:
親子関係がない場合は、$rootScope をコントローラーに挿入し、すべての子スコープにイベントをブロードキャストできます:
function firstCtrl($rootScope) { $rootScope.$broadcast('someEvent', [1, 2, 3]); }
3.子から親へのディスパッチ:
子コントローラーから親コントローラーにイベントをディスパッチするには、$scope.$emit を使用します。最初のコントローラー ($scope.$on) のスコープが 2 番目のコントローラー ($scope.$emit) の親である場合:
function firstCtrl($scope) { $scope.$on('someEvent', function(event, data) { console.log(data); }); } function secondCtrl($scope) { $scope.$emit('someEvent', [1, 2, 3]); }
$scope.$emit と $scope の仕組みを理解することによって。 $on work では、AngularJS アプリケーションのコントローラー間で効果的に通信できます。
以上が`$scope.$emit` と `$scope.$on` はどのようにして AngularJS のコントローラー間通信を促進しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。