首页 > 解决方案 > Angular EventEmitter 未在子组件的父组件中触发

问题描述

我知道这是已回答的问题,并且也有很多链接,但是我的问题很奇怪,请您指导我正确的道路。预先感谢您帮助我。

问题:当发生发射的子组件中发生按钮单击时,事件发射器未在父组件功能中命中。

子html:

 <button (click)="onAccept()" class="k-button approve-data" kendoButton>{{confirmBtn}}</button>

孩子ts:

    @Output() choice = new EventEmitter<boolean>();

    public onAccept() {
    this.choice.emit(true);
    }

父 html:

    <app-confirm-modal (choice)="onPopupClose($event)" />

家长 ts:

    onPopupClose(isOk: boolean): void { }

标签: angularangular-event-emitter

解决方案


我遇到了同样的错误,我解决了,我就是这样做的

当我在发射值时在 chrome 开发工具中调试发射方法时,我发现eventEmitter.observers对象由于某种原因是空的。

经过更多调试和尝试错误方法后,我发现@ViewChild子组件中导致了此问题,我将其删除并使用不同的方法查看子组件(这完全取决于您要实现的目标)。


推荐阅读