如果你在使用 Angular 的 EventEmitter,发现观察者没有被调用,可能是因为以下原因:
你没有订阅 EventEmitter
你订阅的 EventEmitter 和发送事件的 EventEmitter 不是同一个
你的观察者没有正确的绑定 this
下面是一个示例,演示如何通过正确地订阅 EventEmitter 来使观察者被调用:
import { Component, EventEmitter, Output } from '@angular/core';
@Component({
  selector: 'app-my-component',
  template: ``,
})
export class MyComponent {
  @Output() myEvent = new EventEmitter();
  onClick() {
    this.myEvent.emit('event triggered!');
  }
}
@Component({
  selector: 'app-root',
  template: `在这个示例中,MyComponent 发送了一个事件,AppComponent 通过订阅 MyComponent 中的 myEvent,处理这个事件。这里,我们正确地实现了订阅 EventEmitter,所以观察者可以被调用。