使用Angular 1.5,并给出一个组件层次结构,例如:
compA
compB
compC
是否有更好的方法将事件从嵌套子组件冒泡到感兴趣的父组件?
我看到的两个选项是:
$scope.$emit()
。在compA中使用$scope.$on()
。赞成
缺点
&
绑定赞成
缺点
也许我应该制作一个例外并允许$ scope用于此场景。或者,可以选择在$ rootScope上发出/侦听。
编辑:我发现$ rootScope只能用于真正的全局事件,忘记清理你的监听器是很常见的,这是在$ scope上自动完成的。
答案 0 :(得分:1)
将数据从CompC
传递到CompA
(或在任何组件之间)的另一种方法是使用服务而不是基于事件的消息传递。您可以在服务的所有组件中定义依赖关系,并使用该服务在它们之间传递数据。这将再次使组件可重用。