Angular 2:动态组件的Event Emitter订阅,需要取消订阅吗?

时间:2017-04-20 16:29:25

标签: angular angular2-template

我正在动态创建component并订阅其中一个@Ouput EventEmitter

相关代码:

动态组件:

 export class DynamicComponent implements OnInit {
    @Output() results: EventEmitter<any> = new EventEmitter<any>();
 ...
 }

父组件:

 private loadDynamicComponent(): void {
   const componentFactory = this.factoryResolver.resolveComponentFactory(DynamicComponent);
   const componentRef = this.host.viewContainerRef.createComponent(componentFactory);

   (<DynamicComponent>componentRef.instance).results.subscribe(result => {
       this.result = result;
   })
 }

我很困惑我是否需要unsubscribeAngular清理它?

1 个答案:

答案 0 :(得分:0)

我不确定您是否需要取消订阅,但以防我(1)完成观察。

  confirmDialogRef.instance.buttonClicked
    .take(1)
    .subscribe(val => {
      this.appRef.detachView(confirmDialogRef.hostView);
      resolve(val);
    });