一尘不染

AngularJS中$ broadcast(),$ emit()和$ on()的用法

angularjs

我了解$Broadcast()$Emit()并且$On()
用于在一个控制器中引发事件并在另一个控制器中进行处理。如果可能的话,有人可以直接给我一些有关上述三种用法的实时示例angular JS吗?

我通过以下链接了解了基本用法。

http://www.binaryintellect.net/articles/5d8be0b6-e294-457e-82b0-ba7cc10cae0e.aspx


阅读 323

收藏
2020-07-04

共1个答案

一尘不染

$ emit

它通过作用域层次结构向上调度事件名称,并通知已注册的$rootScope.Scope侦听器。事件生命周期从$emit被调用的范围开始。该事件向上移动到根作用域,并在此过程中调用所有已注册的侦听器。如果其中一个侦听器取消了该事件,则该事件将停止传播。

$广播

它将事件名称向下调度到所有子作用域(及其子作用域),并通知已注册的$rootScope.Scope侦听器。事件生命周期从$broadcast被调用的范围开始。该范围内事件的所有侦听器都会收到通知。之后,事件向下遍历子作用域,并沿途调用所有注册的侦听器。该事件无法取消。

$ on

它侦听给定类型的事件。它可以捕捉事件调度的$broadcast$emit


视觉演示:

演示工作代码,以可视方式显示范围树(父/子关系):http :
//plnkr.co/edit/am6IDw?p=preview

演示方法调用:

  $scope.$on('eventEmitedName', function(event, data) ...
  $scope.broadcastEvent
  $scope.emitEvent
2020-07-04