0

我从父级内部动态创建的子框包含一个关闭按钮,该按钮触发一个关闭函数,该函数实际上是一个 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

谢谢!

4

0 回答 0