У меня была проблема с Simillar, но с обычными CSS-файлами.Я был в ситуации, когда мне нужно было динамически изменить всю тему CSS, для всего проекта, основанного на цветах компании пользователей.Решение состояло в том, чтобы иметь вспомогательный класс, который проверял бы, является ли пользователь из компании 1, затем извлекает company1.css, если это из company2, то company2.css.Примерно так:
colorThemeHelper.ts
const FACEBOOK = 'facebook';
const TWITTER = 'twitter';
export class ThemeLoader {
static setCss(): void {
let url = '';
let user: User = LocalData.getUser();
switch (user.company) {
case FACEBOOK:
url = 'assets/css/facebook.css';
break;
case TWITTER:
url = 'assets/css/twitter.css';
break;
default:
url = '';
}
(<HTMLLinkElement>document.getElementById('ELEMENT_PLACEHOLDER_CSS')).href=url;
}
}
Важно, чтобы в файле index.html у вас был тег ссылки с некоторым идентификатором (в моем случае "ELEMENT_PLACEHOLDER_CSS"), который вы можете получить ипоместите сгенерированный URL из метода выше в атрибут href этого элемента.
Чем после того, как пользователь вошел в систему, в некотором компоненте панели мониторинга в методе ngOnInit я бы вызвал функцию setCss!Я знаю, что это не самое элегантное решение, и вам нужно разделить css (или в вашем случае sass) файлы, но в моем случае это работает.Надеюсь, это поможет!