AngularMaterialv15Update-ThemeNotAppliedtoLegacyButtons
创始人
2024-10-28 11:01:42
0

问题在代码中使用Angular Material提供的CDK Overlay模块。

代码示例:

首先,引入Overlay模块:

import { OverlayModule } from '@angular/cdk/overlay';

然后,创建一个主题工厂:

import { ThemePalette } from '@angular/material/core'; import { MatButton } from '@angular/material/button';

@Injectable() export class MyButtonThemeFactory { constructor(private _palette: ThemePalette) {}

createButtonWithTheme(): typeof MatButton { const MyButtonWithTheme = class extends MatButton { constructor(...args: any[]) { super(...args); this.color = this._palette; } };

return MyButtonWithTheme;

} }

然后,在组件中使用CDK Overlay模块创建一个新的按钮:

import { Overlay } from '@angular/cdk/overlay';

@Component({ template: , }) export class MyComponent { @ViewChild('buttonRef') buttonRef: MatButton;

constructor( private _overlay: Overlay, private _buttonThemeFactory: MyButtonThemeFactory, ) {}

ngAfterViewInit() { const MyButtonWithTheme = this._buttonThemeFactory.createButtonWithTheme();

const positionStrategy = this._overlay
  .position()
  .flexibleConnectedTo(this.buttonRef._elementRef)
  .withPositions([
    {
      originX: 'center',
      originY: 'bottom',
      overlayX: 'center',
      overlayY: 'top',
    },
  ]);

const overlayRef = this._overlay.create({
  positionStrategy,
  scrollStrategy: this._overlay.scrollStrategies.reposition(),
  hasBackdrop: true,
  backdropClass: 'cdk-overlay-transparent-backdrop',
  panelClass: 'my-panel',
});

overlayRef
  .backdropClick()
  .subscribe(() => overlayRef.detach());

const buttonPortal = new ComponentPortal(MyButtonWithTheme);

const buttonRef = overlayRef.attach(buttonPortal);

} }

这样就可以在Angular Material v15里更新工程中遗留的按钮样式,保证所设置的主题可以应用于所有按钮。

相关内容

热门资讯

重大发现“佛手在线大菠萝智能辅... 重大发现“佛手在线大菠萝智能辅助器”开挂(透视)辅助神器(攻略教程有挂详细)>>您好:软件加1367...
揭秘几款“wepoker辅助器... 揭秘几款“wepoker辅助器”开挂(透视)辅助插件(切实教程有挂解密)wepoker辅助器ai黑科...
一起来讨论“we poker辅... 开挂教程视频分享装挂详细步骤在当今的网络游戏中,作为一种经典的娱乐方式,吸引了无数玩家的参与。尤其是...
盘点一款“wejoker开挂”... 盘点一款“wejoker开挂”开挂(透视)辅助工具(2026新版总结真的有挂)《详细加薇136704...
透视透视挂“wepoker辅助... wepoker辅助开挂教程视频分享装挂详细步骤在当今的网络游戏中,wepoker辅助作为一种经典的娱...
揭秘关于“wepoker透视脚... 揭秘关于“wepoker透视脚本苹果版”开挂(透视)辅助安装(黑科技教程有挂分析);无需打开直接搜索...
终于清楚“wepoker有辅助... 终于清楚“wepoker有辅助工具吗”开挂(透视)辅助安装(透明教程有挂方针)《详细加薇136704...
透视有挂“约局吧德州可以透视吗... 是一款专注玩家量身打造的游戏记牌类型软件,在这款游戏中我们可以记录下每张牌的数量以便更好的进行发挥。...
玩家必看科普“wpk私人局辅助... 是一款专注玩家量身打造的游戏记牌类型软件,在这款游戏中我们可以记录下每张牌的数量以便更好的进行发挥。...
详细说明“wepoker如何设... 详细说明“wepoker如何设置透视”开挂(透视)辅助神器(曝光教程真是有挂) 了解更多开挂安装加(...