我想在关闭材质对话框后发出一个事件,但是不起作用(也许因为角度代码不在区域内?)。
如果我尝试执行此操作,它将正常工作(该事件已正确附加在html父级中):
onClick(){
this.actionEmitter.emit(result);
}
但是,如果我将这段代码放在afterClosed事件中:
dialogRef.afterClosed().subscribe(result => {
this.actionEmitter.emit(result);
});
它不起作用。没有显示错误,但事件在那里停止。我该如何解决?
答案 0 :(得分:0)
最后,我找出了问题所在。这不是区域外的问题。 组件的层次结构是这样的:
发生的事情是,当鼠标进入项目时打开对话框,这次失去了焦点,并且在html中showOperations为false。 actionEmitter不再存在。
<div (mouseenter)="showOperations=true" (mouseleave)="showOperations=false">
<!-- item something -->
<child-component *ngIf="showOperations" (actionEmitter)="action($event)"></child-component>
</div>
我已经使用[隐藏]而不是* ngIf进行了解析:
<child-component [hidden]="!showOperations" (actionEmitter)="action($event)"></child-component>