Я определил 3 темы в моем _variables.scss
, который импортируется в мой styles.scss
файл:
- Синяя тема
- Зеленая тема
- Красная тема
Я применяю эти темы к компонентам, используя классы, определенные в корневой таблице стилей, например:
.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()
функций, но, насколько я понял, их нужно вызывать с известной темой , а не с темой, которая используется в настоящее время.
Есть мысли по этому поводу?