从组件获取当前应用的Angular Material主题

时间:2019-06-28 08:43:37

标签: angular sass angular-material angular-material2

我在_variables.scss文件中导入了styles.scss中定义了3个主题:

  1. 蓝色主题
  2. 绿色主题
  3. 红色主题

我使用根样式表中定义的类将这些主题应用于组件,例如:

.blue-theme {
  @include mat-button-theme($my-blue-theme);
  @include mat-form-field-theme($my-blue-theme);
  @include mat-input-theme($my-blue-theme);
  ...
}
.green-theme { ... }
.red-theme { ... }

假设我具有以下结构:

- Component A
  - Component AA
  - Component AB
- Component B

我通过应用相应的类在component A上动态切换主题。效果很好。

但是当在component A中绑定主题时,我希望AA和AB也能更改,就像标准的材料组件一样,没有任何服务或无处不在的主题变量策略。

目前,我想出的唯一解决方案是为每个主题创建一个组件,这绝对是无法维护的。

最好的解决方案是使用mat-color()mat-get()函数,但据我所知,必须使用众所周知的主题来调用它们,当前使用的。

有什么想法吗?

0 个答案:

没有答案