angular的事件

本文介绍了Angular中事件的传播机制,包括$emit和$broadcast的使用,以及如何阻止事件传播。此外,还探讨了在层级复杂时,通过事件总线实现更高效的组件间通信,采用订阅发布模式避免直接调用带来的问题。
摘要由CSDN通过智能技术生成

在这里插入图片描述
这张图中有两个视图块A和B,它们分别又有两个子视图。这时候,如果子视图A1想要发出一个业务事件,使得B1和B2能够得到通知,过程就会是:

  • 沿着父作用域一路往上到达双方共同的祖先作用域
  • 从祖先作用域一级一级往下进行广播,直到到达需要的地方
    简化一下:
    在这里插入图片描述
    对于这种事件的传播方式,举个例子,1班班长想要给2班班长发个通知,他的通知方向是一级一级向上汇报,直到双方共同的老师,然后再沿着路线向下去通知。
  • 从作用域往上发送事件,使用scope.$emit
$scope.$emit("someEvent", {});
  • 从作用域往下发送事件,使用scope.$broadcast
$scope.$broadcast("someEvent", {});

这两个方法的第二个参数是要随事件带出的数据。
注意,这两种方式传播事件,事件的发送方自己也会收到一份。

事件的接收与阻止:
无论是$emit还是$broadcast发送的事件,都可以被接收,接收这两种事件的方式是一样的:

$scope.$on("someEvent",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值