我如何捕获一个组件中从另一个组件发出的事件?

问题描述 投票:0回答:3

我想捕获一个组件中的事件,该组件是从另一个组件发出的事件。

我做了以下代码

myservice.ts

private _event = new EventEmitter<any>();

get event(): EventEmitter<any> {
  return this._event;
}

mycomponent_2.ts

this.myservice.event.emit(true);

mycomponent_1.ts-在ngOnInit()中添加了以下代码>

this.myservice.event.subscribe((value) =>  {
  console.log(value);
});

未打印预期的控制台日志。看起来该事件未在component_2中捕获]

我该如何解决?我是否需要将代码移至其他生命周期挂钩?

我想捕获一个组件中的事件,该事件是从另一个组件发出的事件。我做了以下代码myservice.ts private _event = new EventEmitter ();获取event():...

angular angular7 angular8
3个回答
1
投票

使用主题

:主题就像一个可观察对象,但是可以多播到许多观察者。主题就像EventEmitters:它们维护着许多侦听器的注册表。

0
投票

您应该使用ReplaySubject使其发出先前发出的值。 EventEmitter发出后会丢失任何值。


0
投票

[如果要使用事件,请继续阅读。我创建了一个仓库,并通过在事件中添加@output来使其正常工作:

© www.soinside.com 2019 - 2024. All rights reserved.