我有一个main-page.componenent.ts就像这样......
<app-page-component></app-page-component>
然后在我的app-page组件里面我有另一个嵌套组件,如此..
<nested-compoennt></nested-component>
基本上我的应用程序看起来像这样
<app-main-component> // where the function is
<app-page-component>
<nested-component></nested-component> // where the button is
</app-page-component>
</app-main-component>
现在我的嵌套组件中有一个按钮,我想要在顶级父组件上触发一个函数..现在我知道如果我将事件传递给最直接的父,我可以使用事件发射器但是我不确定这是否适用于这种情况..所以我的问题是我怎么能冒泡&#39;一个事件,所以它命中了最多的父容器和触发器和事件?
任何帮助将不胜感激
答案 0 :(得分:1)
您有两种选择。
第一个选项,您可以让每个组件都有一个广播事件的输出。这可以非常快速地发挥作用,特别是如果它是深度嵌套的。
第二个选项,您可以使用共享服务发送和接收消息。本质上,具有该按钮的组件将在您的服务上调用广播该事件的方法,而您的父组件将使用该服务订阅这些广播并正确播放的事件。
答案 1 :(得分:1)
有很多案例,有点难以理解你的案例。
在我看来, 会有2个操作。
祖父母&lt; =&gt; parent&lt; =&gt;儿童:事件发射器 (https://angular.io/guide/component-interaction#!#bidirectional-service)
使用服务:定义服务并调用子组件来设置数据或创建事件,祖父母订阅值更改或事件订阅。
我希望这会有所帮助:)