可以使用Output()
装饰器从子组件中发出事件,以便父组件可以捕获该事件。我需要捕获任何子组件发出的事件,这不一定是给定组件的直接子组件。
让我们ComponentTwo
将其作为发出事件的组件。如果该应用具有以下结构:App -> ComponentTwo
,那么我们可以轻松捕获发出的事件ComponentTwo
。但是,如果我们考虑类似的结构App -> ComponentOne -> ComponentTwo
,那么我们将无法直接捕获发射器。
这是一个说明问题的小插曲。
那么,有没有一种方法可以将事件传播到所有父组件?谢谢。
不支持对此类事件进行冒泡。您需要手动捕获它们并将其发送给父级。
另一种方法是为该组件树利用共享服务,并在其中使用可观察的/主题。
这样,所有子组件都可以订阅它,即使在子子子对象内也可以得到事件通知。
constructor(private service: SharedService) {
this.service.notifier$.subscribe(
data => {
(...)
});
}
该事件将通过以下方式触发:
constructor(private service: SharedService) {
}
notify() {
this.service.notifier$.next('some data');
}
有关更多详细信息,请参见此链接:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句