angular - 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 { }
解决方案
我遇到了同样的错误,我解决了,我就是这样做的
当我在发射值时在 chrome 开发工具中调试发射方法时,我发现eventEmitter.observers
对象由于某种原因是空的。
经过更多调试和尝试错误方法后,我发现@ViewChild
子组件中导致了此问题,我将其删除并使用不同的方法查看子组件(这完全取决于您要实现的目标)。
推荐阅读
- python - 如何在python中将一个周期分解为一组子周期(小时、刻钟和分钟)
- python - 从数据框创建面板数据
- javascript - 每次状态更改时,React 组件都不会被渲染
- javascript - 如何预览从文件输入中选择的图像?(如何检测用户何时选择文件以便预览给定的图像?)
- r - 对向量应用 R 语言中的逻辑运算
- download - 简单的数字下载车
- java - 查看 selenium 创建的临时文件夹
- oracle - 根据大于加入团队日期的游戏日期,从多个表中创建显示 ID、总计数和 ELIGIBLE 计数的 VIEW 或 OUTPUT
- postgresql - 按其他(日期)列分组的一列复杂的 PostgreSQL 平均值
- swiftui - 为什么我的 ListView 什么都没有,SwiftUI