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

相关内容

热门资讯

今日百科辅助!新道游辅助AI工... 今日百科辅助!新道游辅助AI工具,新道游多功能果然是有辅助工具1、金币登录送、破产送、升级送、活动送...
每日必看教程外挂!八喜休闲外挂... 每日必看教程外挂!八喜休闲外挂AI教程,八喜休闲多功能一贯有外挂教程1)八喜休闲有没有挂:进一步探索...
2分钟细说外挂!宁波游戏大厅外... 2分钟细说外挂!宁波游戏大厅外挂AI软件,宁波游戏大厅多功能本来有外挂软件宁波游戏大厅破解侠是真的助...
推荐十款作弊器!战火互娱作弊器... 推荐十款作弊器!战火互娱作弊器AIapp,战火互娱多功能一直真的有作弊器app1、让任何用户在无需战...
分享个大家开挂!全优棋牌开挂A... 分享个大家开挂!全优棋牌开挂AI软件,全优棋牌多功能都是是真的有开挂软件1、用户打开应用后不用登录就...
热点推荐透视挂!三娃透视挂AI... 热点推荐透视挂!三娃透视挂AI技巧,三娃多功能原来真的有透视挂技巧1、任何三娃透视是真的假的的玩家都...
分享给玩家透视挂!姜堰23张透... 分享给玩家透视挂!姜堰23张透视挂AI教程,姜堰23张多功能确实是有透视挂教程1、完成姜堰23张有辅...
玩家实测作弊器!小牛棋牌作弊器... 玩家实测作弊器!小牛棋牌作弊器AI攻略,小牛棋牌多功能本来是真的有作弊器攻略所有人都在同一条线上,像...
玩家必看秘籍辅助器!八喜休闲辅... 玩家必看秘籍辅助器!八喜休闲辅助器AI教程,八喜休闲多功能一直真的是有辅助器教程暗藏猫腻,小编详细说...
必知教程透视挂!宁波游戏大厅透... 必知教程透视挂!宁波游戏大厅透视挂AI软件,宁波游戏大厅多功能一贯是有透视挂软件1、宁波游戏大厅脚本...