Angular: загрузка scss в зависимости от пользователя - PullRequest
0 голосов
/ 31 января 2019

У меня есть наборы пользователей, для которых мне нужно создавать темы.В зависимости от ассоциации учетной записи пользователя я хочу загружать разные темы.Например, если Джон Доу входит в систему, мне нужно загрузить greenteam.scss.Однако, если Даг Смит войдет в систему, он должен увидеть blueteam.scss.

Эти файлы в основном представляют собой настройки цвета и шрифта, используемые другими элементами.greenteam может иметь $header-bg: green;, а blueteam будет $header-bg: blue;.

Моя первоначальная мысль - создать такую ​​структуру: /src/scss/client/_client-xxx.scss, в которой указаны цвета фона, цвета шрифта и т. Д., Установленные в приложении.Итак, после входа в систему система сообщает, что вошедший в нее пользователь является частью «greenteam», и /src/scss/client/_client-greenteam.scss загружается для компиляции цветов и других настроек вместе.Таким образом, я могу просто добавить новую клиентскую тему в каталог, и бум, новая тема!

Число «команд» будет расти в геометрической прогрессии.Я понятия не имею, сколько у меня будет когда-либо в любой момент.Вот почему «просто изменить класс телосложения» вызывает беспокойство, так как это станет очень большим и сложным в управлении.

Также возможно, что я не очень хорошо понимаю, как angular строится в сетикак пользователь называет страницы / стили.На первый взгляд, при развертывании на сервере angular компилирует scss в заголовок css и не загружается «на лету».Если это так, то мне кажется, что мне придется загрузить все возможные параметры клиента css и просто показать, что соответствует (маршрут класса тела).

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

1 Ответ

0 голосов
/ 31 января 2019

Я бы предложил изменить класс тела, но если вы действительно хотите применить css во время выполнения, вы можете попробовать:

  1. скомпилировать scss в css
  2. вставьте его в dom во время выполнения в зависимости от пользователя

Проверьте этот раздел, в котором рассказывается, как добавить стиль во время выполнения, вы можете получить текстовое содержимое таблицы стилей из базы данных: https://stackoverflow.com/a/524717/10899694

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...