Создать тему по запросу angular 8

У меня есть требование взять цветовую палитру из файла конфигурации, который содержит цвета в зависимости от домена.

Файл конфигурации - это файл json, размещенный в корне проекта.

В материале angular 1 есть способ сгенерировать тему по запросу с помощью lazy-generate-theme

Есть ли способ сделать подобное в угловом материале с угловым 8?

0 ответов

Чтобы использовать несколько тем, ознакомьтесь с этим руководством и для создания цветовой палитры мы часто используем этот Генератор палитры дизайна материалов, с помощью которого вы можете настроить цветовую тему, например, следующим образом:

...material custom theme implementation from guide...  

...

.red-theme {  
  @include angular-material-theme($red-theme);
  @include custom-components-theme($red-theme);
  ....
}  

Теперь вы можете использовать класс.red-theme в теле для изменения цвета. Лучший способ, который я нашел, - это предварительно выбрать строку вроде color-palette: "red-theme"из вашего внутреннего API в хуке APP_INITIALIZER (как это работает, ссылка) и использовать его через службу:

your.service.ts   

setColorPalette(colorPalette) {
   const body = document.querySelector('body');
   body.classList.add(colorPalette);
}  
Другие вопросы по тегам