【发布时间】:2017-08-22 18:04:07
【问题描述】:
我是 Angular 4 和 Angular 材料的新手。目前我正在使用 Angular 4 并尝试创建自定义主题。在创建 custom-theme.scss 文件时,我们使用变量将颜色分配给主要、重音和警告,如下所示,
$my-app-primary: mat-palette($mat-light-orange);
$my-app-accent: mat-palette($mat-white);
$my-app-warn: mat-palette($mat-red);
我对这个mat-palette($mat-light-orange); 有点困惑,因为我无法理解它将变量分配给主要颜色、重音颜色和警告颜色的方式。 mat-palette 是什么意思,我们如何为其分配自定义颜色?
这是我在 custom-theme.scss 中使用的代码,但它不起作用。
@import '~@angular/material/theming';
@include mat-core();
$mat-light-orange:#fbab4a;
$mat-white:#ffffff;
$mat-red:#e95337;
$my-app-primary: mat-palette($mat-light-orange);
$my-app-accent: mat-palette($mat-white);
$my-app-warn: mat-palette($mat-red);
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent, $my-app-warn);
@include angular-material-theme($my-app-theme);
【问题讨论】:
-
你在使用 Angular CLI 吗?如果是这样,您是否将
custom-theme.scss包含在angular-cli.json的styles数组属性中?如果没有,您是否将此 scss 文件编译为 css 并将其包含在index.html或类似文件中? -
是的,我正在使用 Angular CLI,它已经包含在 angular-cli.json 文件中,如下所示,“styles”:[“styles.scss”,“custom-theme.scss”],但还是不行
-
好的,这意味着您传递给
mat-pallete()sass @function 的$mat-light-orange等值无效。 Angular Material 源文件中有预定义的调色板变量。请参阅我的回答以获取更多信息。 -
是的,这就是问题所在。谢谢。现在它正在工作。
标签: angular angular-material2 custom-theme