Cac*_*oon 1 css typescript angular-material2 angular
我的主题都完美运行,但由于某种原因,我的 mat-menu 只会以任何默认调用的主题为主题,而不是其他主题。所以为了不破坏它的主题我必须打电话
@include angular-material-theme($dark-theme);
在 styles.scss 的顶部,然后设置我设置的自定义类,默认情况下加载我的灯光,如下所示:
import {OverlayContainer} from "@angular/cdk/overlay";
@Component({
selector: 'app-navbar',
templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.scss']
})
export class NavbarComponent implements OnInit, AfterViewInit {
title:string = "Callum.Tech";
themeClass: string = "light-theme";
overlay;
constructor(
private overlayContainer: OverlayContainer
) {
this.overlay = overlayContainer;
}
setDarkTheme(): void {
this.themeClass = "dark-theme";
}
setLightTheme(): void {
this.themeClass = "light-theme";
}
ngOnInit() {
this.overlay.themeClass = this.themeClass;
}
}
Run Code Online (Sandbox Code Playgroud)
其他所有内容都将重新主题并正常工作,而无需调用我提到的开始包含,但 mat-menu 会出现故障,仅使用在网站启动时提供的第一个主题,并且不会随主题的其余部分而改变。
这是在 styles.scss 开头调用的深色主题和正常加载的浅色主题的样子
这里是选择的深色主题,但在 styles.scss 开始时未调用深色主题:
在重大更改中2.0.0-beta.11:
覆盖:现在覆盖是 cdk 的一部分而不是直接的 Angular Material,themeClass 属性已被删除。要将类添加到覆盖层以进行主题化,您可以执行以下操作
Run Code Online (Sandbox Code Playgroud)overlayContainer.getContainerElement().classList.add('my-theme-class');
因此,您可以按如下方式更改代码:
overlayContainer.getContainerElement().classList.add('my-theme-class');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2791 次 |
| 最近记录: |