Получить текущую примененную тему углового материала из компонента - PullRequest
0 голосов
/ 28 июня 2019

Я определил 3 темы в моем _variables.scss, который импортируется в мой styles.scss файл:

  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() функций, но, насколько я понял, их нужно вызывать с известной темой , а не с темой, которая используется в настоящее время.

Есть мысли по этому поводу?

...