gpt4 book ai didi

angular - 通过 Angular2 中的嵌套组件发出事件

转载 作者:太空狗 更新时间:2023-10-29 17:12:37 26 4
gpt4 key购买 nike

可以使用 Output() 装饰器从子组件发出事件,以便父组件可以捕获它。我需要的是捕获任何子组件发出的事件,该子组件不一定是给定组件的直接子组件。

ComponentTwo 成为发出事件的组件。如果应用程序具有以下结构:App -> ComponentTwo,那么我们可以很容易地捕获 ComponentTwo 发出的事件。但是如果我们考虑像 App -> ComponentOne -> ComponentTwo 这样的结构,那么我们就不能直接捕获发射器。

这是一个plunker这说明了问题。

那么有没有一种方法可以将事件传播到所有父组件?谢谢。

最佳答案

此类事件不支持冒泡。您需要手动捕获它们并发送给父级。

另一种方法是为这个组件树利用共享服务,并在其中使用一个可观察对象/主题。

这样所有组件都可以订阅它以接收事件通知,即使在子子子级中也是如此。

constructor(private service: SharedService) {
this.service.notifier$.subscribe(
data => {
(...)
});
}

事件将以这种方式触发:

constructor(private service: SharedService) {
}

notify() {
this.service.notifier$.next('some data');
}

有关详细信息,请参阅此链接:

关于angular - 通过 Angular2 中的嵌套组件发出事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37073415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com