我了解$Broadcast(),$Emit()并且$On() 用于在一个控制器中引发事件并在另一个控制器中进行处理。如果可能的话,有人可以直接给我一些有关上述三种用法的实时示例angular JS吗?
$Broadcast()
$Emit()
$On()
angular JS
我通过以下链接了解了基本用法。
http://www.binaryintellect.net/articles/5d8be0b6-e294-457e-82b0-ba7cc10cae0e.aspx
$ emit
它通过作用域层次结构向上调度事件名称,并通知已注册的$rootScope.Scope侦听器。事件生命周期从$emit被调用的范围开始。该事件向上移动到根作用域,并在此过程中调用所有已注册的侦听器。如果其中一个侦听器取消了该事件,则该事件将停止传播。
$rootScope.Scope
$emit
$广播
它将事件名称向下调度到所有子作用域(及其子作用域),并通知已注册的$rootScope.Scope侦听器。事件生命周期从$broadcast被调用的范围开始。该范围内事件的所有侦听器都会收到通知。之后,事件向下遍历子作用域,并沿途调用所有注册的侦听器。该事件无法取消。
$broadcast
$ on
它侦听给定类型的事件。它可以捕捉事件调度的$broadcast和$emit。
视觉演示:
演示工作代码,以可视方式显示范围树(父/子关系):http : //plnkr.co/edit/am6IDw?p=preview
演示方法调用:
$scope.$on('eventEmitedName', function(event, data) ... $scope.broadcastEvent $scope.emitEvent