使用$scope.$emit 和$scope.$on
在AngularJS 中,可以使用$scope 來實現控制器之間的通信.$emit 和$scope.$on 方法。這些方法促進基於事件的通信,允許資料或訊號從一個控制器廣播到另一個控制器。
$scope.$emit 和 $scope.$on:解釋
親子範圍關係很重要
這些方法的有效性取決於父子之間的關係所涉及的控制者的範圍。有兩種類型的事件調度可用:
範例場景
1.父子作用域關係:
1.父子作用域關係:
function firstCtrl($scope) { $scope.$broadcast('someEvent', [1, 2, 3]); } function secondCtrl($scope) { $scope.$on('someEvent', function(event, mass) { console.log(mass); }); }
如果第一個控制器($scope.$emit) 的作用域是第二個控制器($scope.$on) 的父級,則下列程式碼應該有效:
2。無父子作用域關係:
function firstCtrl($rootScope) { $rootScope.$broadcast('someEvent', [1, 2, 3]); }
如果沒有父子作用域,可以將$rootScope 注入控制器,並將事件廣播到所有子作用域:
3.從子控制器分派到父控制器:
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) 的範圍是第二個控制器($scope.$emit) 的父級:
透過了解$scope.$emit 和$ scope. $on work,您可以在AngularJS 應用程式中的控制器之間進行有效的通訊。以上是`$scope.$emit` 和 `$scope.$on` 如何促進 AngularJS 中的控制器間通訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!