Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角形CDK入口,多个入口到一个入口?_Angular_Angular Cdk - Fatal编程技术网

Angular 角形CDK入口,多个入口到一个入口?

Angular 角形CDK入口,多个入口到一个入口?,angular,angular-cdk,Angular,Angular Cdk,正如标题所述,是否可以使用角度CDK门户/portalOutlets将多个门户连接到一个PortalOutlete,我一直在挖掘CDK源代码,似乎找不到任何表明这是可能的 主要是在portals.ts中对该代码得出这一结论 attach(portal: Portal<any>): any { if(!portal) { throwNullPortalError(); } if(this.hasAttached()) { throwPortalAlread

正如标题所述,是否可以使用角度CDK门户/portalOutlets将多个门户连接到一个PortalOutlete,我一直在挖掘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);
}
附加(入口:入口):任何{
如果(!门户){
throwNullPortalError();
}
if(this.hasAttached()){
ThrowPortalReadyAttachedError();
}
如果(此项已显示){
throwPortalOutletAlreadyDisposedError();
}
if(组件门户的门户实例){
这。_attachedPortal=portal;
返回此.attachComponentPortal(门户);
}else if(TemplatePortal的门户实例){
这。_attachedPortal=portal;
返回此.attachTemplatePortal(门户);
}

很明显,在这种情况下,我可以创建多个PortalOutlet或覆盖,并使用componentFactoryResolver将组件门户分别附加到每个覆盖上,但这也不是我所追求的情况。

这确实不可能。您可以做的是为门户创建一个通用容器,然后只附加/deta将该容器连接到PortalOutlet,具体取决于是否有1个或多个门户要显示


您必须创建自己的附加视图逻辑,但使用

非常简单,这确实是不可能的。您可以做的是为门户创建一个通用容器,然后仅将该容器附加/分离到PortalOutlet,具体取决于是否有一个或多个门户要显示


您必须创建自己的附加视图逻辑,但是使用

非常简单,因此我的一位同事在angular cdk站点中进行了挖掘,并注意到,如果您检查页面元素,确实会出现一个覆盖容器,其中包含多个覆盖容器,如果您可以帮助elabo的话另外,如果您能给我评分,我们将不胜感激。谢谢您为我指点viewContainerRef,这似乎更适合这个目的。@Munerz不客气:)关于菜单,如果您谈论的是子菜单,那么这些都是单独的
模板门户
(请参阅)投影在
cdk覆盖容器中
。该容器来自类
overlay
,而不是
OverlayRef
。因此,正如你们所看到的,在任何时候都只有一个
cdk覆盖容器
。嘿,伙计们,我正在尝试实现类似的目标。你们能不能说是一个Stackblitz?所以我的一个同事正在挖掘这个通过angular cdk站点-注意到,如果您检查页面元素,发现确实存在一个覆盖容器,其中包含多个覆盖容器,如果您也能帮助详细说明,我们将不胜感激。感谢您为我指出viewContainerRef似乎更适合此目的@Munerz不客气:)关于菜单,如果您谈论的是子菜单,那么这些子菜单都是独立的
模板门户
(请参阅)投影在
cdk覆盖容器中
。该容器来自类
overlay
,而不是
OverlayRef
。因此,正如你们所看到的,在任何时候都只有一个
cdk覆盖容器
。嘿,伙计们,我正在尝试实现类似的目标。你们能不能来一场Stackblitz?你们想要的场景是什么门户或多或少是一个矩形屏幕,专用于动态实例化的组件或模板。为什么您需要同时使用多个组件?如果您正在使用覆盖,您仍然可以同时跟踪多个覆盖实例,通过协调服务对其进行管理。您想要的场景是什么?门户或多或少是一个屏幕矩形,专用于动态实例化的组件或模板。为什么您同时需要多个组件?如果您使用覆盖,您仍然可以同时跟踪多个覆盖实例,通过协调服务对其进行管理。