Angular 2 - 破坏子组件

时间:2016-07-30 18:06:47

标签: typescript angular

我从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" ,但是childCmp没有" ComponentRef"实施

我如何实现或注入destroy方法?

谢谢大家!

1 个答案:

答案 0 :(得分:4)

试试这个

export class MainCmp {

   @ViewChild(ChildCmp) childRef: ChildCmp;

   destroyClick() {

      if (this.childRef) {
         this.childRef.destroy();
      }
   }
}