Angular 2:如何动态创建ViewContainerRef

时间:2016-10-31 12:52:53

标签: angular components

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

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

而不是创建组件:

let factory = this.componentResolver.resolveComponentFactory(Dialog);
this.componentReference = this.dialogContainer.createComponent(factory);

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

1 个答案:

答案 0 :(得分:3)

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

我为你创建了plunker示例,我没有在这里嵌入它,因为stackowerflow代码片段不支持我创建示例所需的所有功能:) http://embed.plnkr.co/XFQAAHDAyrRAih3RTvHH/