Angular 2:如何动态创建ViewContainerRef

lex*_*ren 13 components angular

我正在尝试创建具有显示任意模态的能力的模态服务.目前,要创建动态组件,我在视图中存储占位符:

 <div #container></div>
 ...
 @ViewChild("dialogContainer", {read: ViewContainerRef})
 dialogContainer:ViewContainerRef;
Run Code Online (Sandbox Code Playgroud)

而不是创建组件:

let factory = this.componentResolver.resolveComponentFactory(Dialog);
this.componentReference = this.dialogContainer.createComponent(factory);
Run Code Online (Sandbox Code Playgroud)

有没有办法将所有这些逻辑从组件转移到服务,能够在正文或任何其他DOM元素中创建/删除视图容器?

igo*_*rzg 2

它不会创建 ViewContainerRef,但它可以帮助您动态创建弹出窗口作为单独的组件。

我为您创建了 plunker 示例,但我没有将其嵌入此处,因为 stackowerflow 代码片段不支持创建示例所需的所有功能:) http://embed.plnkr.co/XFQAAHDAyrRAih3RTvHH/

  • 我也不明白这如何回答这个问题。 (5认同)