Angular2: тема пользовательского материала в каждом загруженном подмодуле - PullRequest
0 голосов
/ 12 февраля 2019

Проблема с загрузкой пользовательских тем Angular Material 2 в отдельные подмодули приложения Angular 7

У меня есть модуль угловой обертки (модуль приложения) и много независимых загруженных ленивых подмодулей.Каждый субмодуль работает как отдельное приложение и нуждается в собственной теме угловых материалов.

Я создал собственную тему для каждого субмодуля и попытался сослаться на собственную тему в каждом из компонентов '.scss файл с относительным путем.

Некоторые компоненты Material применяют пользовательскую тему (кнопка), а некоторые (mat-form-field) просто берут тему, указанную в styles.scss.

Один из способов, которым я могу избежать этого, - это включение каждой пользовательской темы в массив 'styles' angular.json, но я боюсь, что при этом каждый независимый подмодуль (приложение) должен будет загружать все темы 'скомпилирован .css, и это будет связано с накладными расходами.

Есть ли какие-либо известные проблемы с этим или каким-либо другим лучшим решением?

home-app.component.scss :

@import './theme.scss';

VS.

angular.json

...
"styles": [
    "src/styles.scss",
    "src/app/orgs/home/theme.scss" // <-- FIXED BY ADDING THIS
],
...

Ожидается: Тема, заявленная в home-app.component.scss будет загружен и применен ко всем компонентам материала, используемым в home-app.component.html

Факт: Если я не добавлю "src / app / orgs / home / theme.scss" в angular.json , пользовательская тема, объявленная в styles.scss , будет применена к некоторым компонентам материала, используемым в home-app.component.html , а некоторые компоненты материала будут использовать указанную импортированную темув home-app.component.scss

...