kittencup / angular2-ama-cn

angular2 随便问
691 stars 101 forks source link

组件如何销毁自己 #173

Open mmoonn2 opened 8 years ago

mmoonn2 commented 8 years ago

我有个需求就是要component自己销毁 而不是用*ngIf在模版层控制销毁 如何实现?


@Component({
    selector: 'panel',
    template: `
        <div>
            <span (click)="min()">最小化</span>
            <span (click)="max()">最大化</span>
            <span (click)="destroy()">关闭</span>
        </div>
    `
})

export class PanelCmp implements OnDestroy
{
    constructor(){

    }

    min(){}

    max(){}

    destroy(){
        // 这里如何实现销毁当前component 并触发 ngOnDestroy
    }

    ngOnDestroy(){
        alert('销毁了')
    }
}
Adol1111 commented 8 years ago

@junjun16818 可以这样做,但是好像不会触发组件的生命周期,只能手动调用ngOnDestroy

constructor(private element: ElementRef) {} 
destroy(){
    this.element.nativeElement.remove(); 
    this.ngOnDestroy() 
}