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里更新工程中遗留的按钮样式,保证所设置的主题可以应用于所有按钮。

相关内容

热门资讯

重大通报!辅助!wepoker... 重大通报!辅助!wepoker私局代打,wepoker真的有挂教程(一直是有辅助)AI 是一款可以让...
玩家攻略推荐辅助!wepoke... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
一分钟了解透视!德普之星透视,... 很多人使用云端 AI 时,都担心德普之星透视、内部资料上传带来隐私风险。这款本地运行的 AI 黑科技...
每日必看辅助挂!wpk有脚本吗... 很多人使用云端 AI 时,都担心德扑之星透视、内部资料上传带来隐私风险。这款本地运行的 AI 黑科技...
靠谱教程开挂!we poker... we poker游戏下AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数...
一分钟了解辅助器!wepoke... 一款 AI 游戏攻略黑科技工具上线,查攻略效率直接开挂。它整合版本更新、装备搭配、BOSS 打法、牌...
最新通报辅助挂!wpk俱乐部是... 很多人使用云端 AI 时,都担心wpk俱乐部是真的吗、内部资料上传带来隐私风险。这款本地运行的 AI...
推荐十款!辅助器!wepoke... 推荐十款!辅助器!wepoker怎么拿到好牌,微扑克外卦神器软件工具(起初真的是有辅助器)AI 是一...
玩家必看秘籍透视!wepoke... 本地部署 AI 黑科技工具迎来新版本,不用上传文件到云端就能完成wepokerplus外挂解析、 A...
科普辅助器!德朴之星脚本,WP... 『标题:当前标题』主打赛后复盘的 AI 游戏攻略黑科技走红,对局总结能力开挂。上传对局回放或者战绩截...