在 ngOnInit() 上发出事件

Jor*_*ald 5 angular

尝试在初始化期间从子组件向父组件发出事件。onchange 事件工作正常,但初始化时似乎没有任何事件发生。

该事件来自选择菜单,我们以默认选择值 2 启动选择菜单,并且我们需要父级知道该值:

子组件 HTML:

<!-- Show Season Dropdown -->
<div style="float:right">
    <select id="seasonDropDown" aria-label="Select a Season">
                  <option *ngFor="let item of seasons" [value]="item.id" [selected]="item.id === seasonId">Season {{item.id}}</option>
              </select>
</div>
Run Code Online (Sandbox Code Playgroud)

子组件:

 @Output() notify: EventEmitter<number> = new EventEmitter<number>();

  ngOnInit() {
    this.notify.emit(2);
    this.getSeasons();
  }

  public changeSeason(seasonId: number) {
    console.log('change season ' + seasonId)
    this.seasonId = seasonId;
    this.notify.emit(this.seasonId);
  }
Run Code Online (Sandbox Code Playgroud)

我们在父页面上有这个组件:

<app-seasons-dropdown (notify)="onNotify($event)"></app-seasons-dropdown>
Run Code Online (Sandbox Code Playgroud)

我们在父组件中有这个监听器:

  onNotify(event:Event):void {
    console.log('notify');
    const seasonId = (event.target as HTMLSelectElement).value;
    this.getLeaderboardBySeason(Number(seasonId));
  }
Run Code Online (Sandbox Code Playgroud)