我正在寻找一种从服务中获取AppComponent
ViewContainerRef
的方法。
我在网上找到了代码,如this code,this code或this issue,但它们都是针对Angular的早期版本(我使用的是版本6)。
我想得到这个参考,而不必通过设置器自己设置。
现在,我必须将ViewContainerRef
注入AppComponent
并将其提供给服务。
我希望从服务中直接获得引用,只是注入的提供者,这是一种类似的东西
constructor(
private applicationRef: ApplicationRef
) {
this.viewContainerRef = applicationRef.getAppViewRef();
}
用例是创建组件并将其附加到文档,在body级别或AppComponent
级别;这将允许我创建通知,对话框......
您可以像在您提供的链接中一样使用它。我在这里创建了一个stackblitz:https://angular-5lhjkq.stackblitz.io在AppService中我注入ApplicationRef
并使用attachView
I将AppComponent中的DummyComponent添加到body应用程序中。
这项工作似乎与以前的版本完全一样。
由于我无法解决我的问题,我正在回答它。
对于那些寻找类似东西的人来说,Thoughtram's Dominic Elm是使用CDK的Overlay
s和Portals
的一个非常好的例子。
我没有寻找对根组件的引用,而是通过它动态地将组件附加到应用程序。