问题描述
我正在使用 DomPortalOutlet 创建一个弹出窗口,并将一个 ComponentPortal 附加到出口,从而允许组件在新窗口中显示。见下文:
this.externalWindow = window.open(
'','_blank','location=yes,height=' + height + ',width=' + width
);
const outlet = new DomPortalOutlet(
this.externalWindow.document.body,this.componentFactoryResolver,this.applicationRef,this.injector,document
);
const containerPortal = new ComponentPortal(myComponent);
outlet.attach(containerPortal);
这工作正常,新窗口被创建,组件显示、服务和依赖项被注入等。问题是覆盖(mat-menu、mat-select等)是在新弹出窗口中不显示在主窗口中。 cdk-overlay-container 仅存在于主窗口中,而不存在于新的弹出窗口中,因此所有覆盖都显示在主窗口中。不知何故,我需要在新的弹出窗口中创建第二个覆盖容器,以便覆盖显示在正确的窗口中。
有什么想法吗?建议?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)