我从Angular 2开始,我有一个子组件" ChildCmp"初始化后,我需要通过点击销毁组件,然后说:
@Component({
selector: 'main-cmp',
templateUrl: './main-cmp.html',
directives: [ChildCmp]
})
class MainCmp {
@ViewChild(ChildCmp)
childCmp: ChildCmp;
destroyChildClick(){
this.childCmp.destroy();
}
}
但是前面的代码没有运行,destroy()是未定义的,异常是:
TypeError:this.childCmp.destroy不是函数
我已阅读this thread并且使用 ViewContainerRef.createComponent(),使用此功能创建的组件是" ComponentRef" 的实例strong>,但是childCmp没有" ComponentRef"实施
我如何实现或注入destroy方法?
谢谢大家!
答案 0 :(得分:4)
试试这个
export class MainCmp {
@ViewChild(ChildCmp) childRef: ChildCmp;
destroyClick() {
if (this.childRef) {
this.childRef.destroy();
}
}
}