【发布时间】:2019-10-04 15:45:32
【问题描述】:
我有一个父组件,我想将内部发生的所有鼠标事件传递给一个子组件,该子组件包含 3 个不同的组件,这些组件取决于所传递的数据。
我的目标是不使用父组件内部的事件侦听器,但在子组件内部并处理子组件内部的所有逻辑
起初我想用@HostListners而不是子组件创建一个指令并将其绑定到父元素,但由于子组件内部有组件我没有这样做。
任何问题都将不胜感激。
示例:
<div class="some-class"> // Pass all mouse events from here
<app-child-component> // To here
<app-child-of-child-component-1></app-child-of-child-component-1>
<app-child-of-child-component-2></app-child-of-child-component-2>
<app-child-of-child-component-3></app-child-of-child-component-3>
</app-child-component>
</div>
【问题讨论】:
-
你添加一个事件监听器到父元素。当子元素触发该事件时,侦听器也会触发。您只需要区分谁是触发事件的孩子并根据单独的逻辑进行处理
-
为什么不能使用 HostListner?我相信,它可以在任何级别被捕获。
标签: angular typescript