在 Angular Material v15 中,主题(theme)的定义方式有了很大的变化。具体而言,v14 中定义主题的方式是通过一个名为 $mdThemingProvider 的服务来实现的,而在 v15 中,主题变成了一个单独的 Angular 模块:@angular/material/core/theming。
为了升级到 v15,并使用新的主题功能,我们需要更新相应的代码。
首先,确保您的项目已经更新到了 Angular Material v15 或更高版本。然后,像下面这样导入主题模块:
import {MatCoreModule} from '@angular/material/core'; import {MatButtonModule} from '@angular/material/button';
@NgModule({ imports: [ MatCoreModule, MatButtonModule ], ... })
接下来,我们需要通过 Angular 的 DI 机制,来提供全局的主题配置。具体而言,可以通过此处创建的函数,来定义主题:
import {MatButtonModule} from '@angular/material/button'; import {MatButton} from '@angular/material/button'; import {MAT_THEME_OPTIONS, ThemeOptions} from '@angular/material/core';
@NgModule({ imports: [MatButtonModule], providers: [{ provide: MAT_THEME_OPTIONS, useValue: { primary: 'indigo', Accent: 'pink', } as ThemeOptions }] }) class MyModule {}
最后,我们需要通过模板和组件来使用这些新定义的主题。例如,在按钮组件中,我们可以使用类似下面的方式来应用定义的主题:
希望这个简单的例子能够帮助您顺利升级到 Angular Material v15,并开始使用新的主题功能。