在 Angular 8 项目中,我使用以下代码创建了一些没有 viewref 的动态组件:
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(HelloComponent);
const componentRef = componentFactory.create(this.injector);
componentRef.changeDetectorRef.detectChanges();
componentRef.instance.slideContentRendered.pipe(first()).subscribe(x => {console.log('does not work', x);});
在 HelloComponent 本身中,我正在等待一些异步任务完成,然后发出 slideContentRendered 但我没有进入订阅方法主体。
在这里你可以看到一个示例应用程序 https://stackblitz.com/edit/angular-krx3y6
我怎样才能访问输出?如果我尝试使用以下代码对 viewref 进行相同操作:
const componentRef = viewContainerRef.createComponent(componentFactory);
componentRef.instance.slideContentRendered.pipe(first()).subscribe(x => {console.log('it works', x);});