我从Angular 2开始,我已经初始化了一个子组件“ChildCmp”,在我需要通过单击销毁该组件之后,说:
@Component({
selector: 'main-cmp',
templateUrl: './main-cmp.html',
directives: [ChildCmp]
})
class MainCmp {
@ViewChild(ChildCmp)
childCmp: ChildCmp;
destroyChildClick(){
this.childCmp.destroy();
}
}
但是之前的代码无法运行,destroy()是未定义的,并且异常是:
我已经阅读了this thread,并使用了 ViewContainerRef.createComponent(),由此创建的组件是“ComponentRef” 的实例,但是childCmp没有实现“ComponentRef”。
如何实现或注入(inject)destroy方法?
谢谢大家!
最佳答案
试试这个
export class MainCmp {
@ViewChild(ChildCmp) childRef: ChildCmp;
destroyClick() {
if (this.childRef) {
this.childRef.destroy();
}
}
}