Я переписываю приложение AngularJS, где тема приложения предоставляется сервером.Также тема может быть отредактирована пользователем в приложении (с помощью палитры цветов).
Это стало возможным благодаря ng.material.IThemingProvider
и $mdTheming
из материала Angularjs.Но в Angular этих сервисов не существует.Таким образом, возникает вопрос: как я могу динамически создать тему Angular Material и использовать ее?
Ответ сервера
Я получаю следующие данные с сервера:
"css": {
"--nav-font-color-accent": "#fff",
"--nav-font-color-active": "#fff",
"--primary": "#4f2d7f",
"--nav-background": "#fefffe",
"--nav-font-color": "#47a742",
"--warn": "#ff5722",
"--accent": "#00a8b5",
"--brand-color": "#47a742"
}
Затем эти данные преобразуются в тему материала Angularjs через ng.material.IThemingProvider
:
this.themeProvider.definePalette('primaryPalette', this.generatePalette(config['--primary']));
this.themeProvider.theme('default')
.primaryPalette('primaryPalette')
Isесть ли способ воспроизвести эту функцию в Angular Material 7.1.0
?