【发布时间】:2019-10-30 10:32:05
【问题描述】:
因此,正如标题所述,是否真的可以使用 Angular CDK 门户/portalOutlets 将多个门户附加到一个 PortalOutlet,我一直在挖掘 CDK 源代码,似乎找不到任何表明它可能的东西.
主要是对portals.ts中的这段代码得出这个结论。
attach(portal: Portal<any>): any {
if(!portal) {
throwNullPortalError();
}
if(this.hasAttached()) {
throwPortalAlreadyAttachedError();
}
if (this._isDisposed) {
throwPortalOutletAlreadyDisposedError();
}
if (portal instanceof ComponentPortal) {
this._attachedPortal = portal;
return this.attachComponentPortal(portal);
} else if (portal instanceof TemplatePortal) {
this._attachedPortal = portal;
return this.attachTemplatePortal(portal);
}
显然,我可以创建多个portalOutlets,或者在这种情况下说叠加层,并使用componentFactoryResolver将组件门户单独附加到每个叠加层,但这又不是我所追求的场景。
【问题讨论】:
-
你所追求的场景是什么?门户或多或少是一个专门用于动态实例化组件或模板的屏幕矩形。为什么同时需要多个组件?如果您正在使用叠加层,您仍然可以同时跟踪多个叠加层实例,并通过协调服务管理它们。
标签: angular angular-cdk