我正在尝试创建能够显示任意模态的模态服务。 目前,为了创建动态组件,我在 View 中为其存储了占位符:
<div #container></div>
...
@ViewChild("dialogContainer", {read: ViewContainerRef})
dialogContainer:ViewContainerRef;
然后创建组件:
let factory = this.componentResolver.resolveComponentFactory(Dialog);
this.componentReference = this.dialogContainer.createComponent(factory);
有没有办法将所有这些逻辑从组件移到服务中,并能够在 body 或任何其他 DOM 元素中创建/删除 View 容器?
最佳答案
它不会创建 ViewContainerRef,但它可以帮助您动态创建一个弹出窗口作为单独的组件。
我为您创建了 plunker 示例,但我没有将其嵌入此处,因为 stackowerflow 代码片段不支持创建示例所需的所有功能 :) http://embed.plnkr.co/XFQAAHDAyrRAih3RTvHH/
关于 Angular 2 : How to dynamically create ViewContainerRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40342587/