Angular为什么要将`cdk-overlay-container`添加到body中?
创始人
2024-10-29 23:00:53
0

在 Angular 中,cdk-overlay-container 是 Overlay 模块使用的一个容器,用于显示过渡效果和实现弹出框等组件。将 cdk-overlay-container 添加到 body 是为了确保 Overlay 可以覆盖整个页面,并且不会受到其他元素的影响。

以下是一些代码示例,说明如何手动将 cdk-overlay-container 添加到 body:

app.component.html:


  

app.component.ts:

import { Component, Injector, ViewContainerRef } from '@angular/core';
import { Overlay, OverlayConfig, OverlayContainer } from '@angular/cdk/overlay';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  constructor(private overlay: Overlay, private injector: Injector, private overlayContainer: OverlayContainer) { }

  showOverlay() {
    const overlayRef = this.overlay.create(this.getOverlayConfig());
    const overlayPortal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);
    overlayRef.attach(overlayPortal);
  }

  private getOverlayConfig(): OverlayConfig {
    const positionStrategy = this.overlay.position().global().centerHorizontally().centerVertically();
    const overlayConfig = new OverlayConfig({
      positionStrategy,
      hasBackdrop: true,
      scrollStrategy: this.overlay.scrollStrategies.block(),
      panelClass: 'my-overlay-container'
    });
    return overlayConfig;
  }

  get overlayTemplate(): TemplateRef {
    return this.injector.get(TemplateRef);
  }

  get viewContainerRef(): ViewContainerRef {
    return this.injector.get(ViewContainerRef);
  }

}

在上面的代码中,我们通过 Overlay 模块创建了一个 Overlay,并使用 TemplatePortal 将模板渲染到 Overlay 上。需要注意的是,在 getOverlayConfig 方法中,我们指定了一个 CSS 类名 my-overlay-container,这个类

相关内容

热门资讯

透视能赢!hhpoker有后台... 透视能赢!hhpoker有后台操作吗,红龙poker辅助工具,2025新版教程(有挂攻略)1、hhp...
透视安卓版!wepoker开辅... 透视安卓版!wepoker开辅助能查到吗,wepoker私人局俱乐部辅助(透视)安装教程(有挂解说)...
透视线上!wepoker怎么破... 透视线上!wepoker怎么破解游戏,wepoker私人辅助器,必备教程(有挂秘籍)1、wepoke...
透视有挂!wejoker辅助器... 透视有挂!wejoker辅助器怎么卖,wepoker透视脚本网页(透视)可靠教程(有挂方法)1、用户...
透视了解!大菠萝789辅助器下... 透视了解!大菠萝789辅助器下载,wepoker破解器激活码,科技教程(有挂秘笈)所有人都在同一条线...
透视脚本!wepoker好友助... 透视脚本!wepoker好友助力码,wepoker免费辅助器(透视)力荐教程(有挂攻略)1、游戏颠覆...
透视app!pokemmo手机... 透视app!pokemmo手机脚本辅助器,pokemmo内置修改器,可靠教程(有挂攻略);1、pok...
透视计算!wepoker有辅助... 透视计算!wepoker有辅助吗,wejoker辅助器怎么卖(透视)可靠教程(有挂黑科技)1、wej...
透视攻略!有哪些免费的wpk作... 透视攻略!有哪些免费的wpk作弊码,菠萝德普辅助器免费版在哪里,2025新版(有挂规律)1、玩家可以...
透视智能ai!wepoker辅... 透视智能ai!wepoker辅助透视软件,wepoker透视方法(透视)我来教教你(有挂规律)1、下...