很抱歉,这似乎是一个重复的问题。我在这里做了很多研究,没有答案适合我。
在这种情况下,我正在通过服务添加模式。此服务在应用程序启动时从布局视图获取其ViewContainerRef初始化。
const factory = this.componentFactoryResolver.resolveComponentFactory(component);
this.modalComponentRef = this._viewContainerRef.createComponent(factory);
这是非常简单的东西。上面的代码将我的模式添加到屏幕上,我可以与它进行交互。关闭模态并将关闭布尔值返回给服务后,我尝试通过多种方式删除该组件...
this._viewContainerRef.clear();
this._viewContainerRef.detach();
this.modalComponentRef.destroy();
this._viewContainerRef.remove();
以任何顺序进行的任何操作,无论是单独执行,还是以其他方式完成,都不会使其从视图中消失。模态将保留,但是会丢失所有功能。按钮不再触发可观察对象等。它就像我屏幕上死去的孤儿一样。我在这里寻找任何方向。 我正在使用Angular 2.4.8