我从父级内部动态创建的子框包含一个关闭按钮,该按钮触发一个关闭函数,该函数实际上是一个 EventEmitter,消息应该以某种方式到达父级,以便使用“this.child.destroy(); 销毁子组件; "
父级中的代码以创建子级:
childComponentRef: any;
@ViewChild('childComponentcontainer', {static : false, read: ViewContainerRef }) entry: ViewContainerRef;
createchildComponent(message:any) {
this.entry.clear();
const factory = this.resolver.resolveComponentFactory(childComponent);
this.childComponentRef = this.entry.createComponent(factory);
this.childComponentRef.instance.data = message;
}
closechildComponent($event){
console.log("dest")
//this.childComponentRef.destroy();
}
和html
<template #childComponentcontainer (close) = "closechildComponent($event)"></template>
或者
<template #childComponentcontainer></template>
和孩子
onClose() {
this.close.emit("close");
}
孩子显示,但单击关闭按钮时没有任何反应。我该如何解决这个问题?
通常我会使用
<child
(close) = "closebox($event)"
[data] = "data">
</child>
但在这里我不能添加(关闭)绑定,因为我是动态创建组件的
https://angular-excmcj.stackblitz.io
谢谢!