我正在用angular 2构建模态服务。我解决了大多数问题,但是在将modal组件以良好的 Angular 方式放置在body元素中时遇到了问题。我使用DynamicComponentLoader.loadNextToLocation
函数获取模态组件并将其放置在ElementRef
函数中常用的DynamicComponentLoader.loadNextToLocation
旁边。但是,当我不想将创建的模态放在某个组件中时,我必须操纵DOM来插入创建的模态。我的问题是我可以在模态服务的应用程序中使用根元素吗?当特定元素未作为模态容器提供时,我想实现这一目标。
var elementRef = DOM.query('app');
this.componentLoader.loadNextToLocation(ModalBackdrop, elementRef, backdropBindings)
最佳答案
appElementRef: ElementRef;
constructor(private applicationRef:ApplicationRef, injector: Injector) {
this.appElementRef = injector.get(applicationRef.componentTypes[0]).elementRef;
}
AppComponent
将需要提供elementRef
字段,但该字段返回ElementRef
。另请参阅https://github.com/angular/angular/issues/6446