Угловой 5: компоненты верхнего колонтитула, нижнего колонтитула и боковой панели должны быть размещены в основном модуле или общей папке, если приложение имеет лениво загруженные функции? - PullRequest
0 голосов
/ 08 октября 2018

У меня есть приложение Angular5 со следующей структурой: enter image description here

Компоненты Header, Footer и Sidebar размещены в Shared -> Components .Компонент Header и SideBar импортирует службу SideBarService (в общей папке).Когда пользователь нажимает на значок боковой панели в компоненте Header, SidebarService используется для переключения классов, применяемых к компоненту Sidebar.

Мой вопрос: в соответствии с архитектурой приложения Angular 5, должны ли Header, Footer и Sidebarпомещаться в общий или в основной модуль.Поскольку мое приложение имеет загруженные модули с отложенной загрузкой, это вызовет проблему в будущем, например, если один отложенный модуль, например, Admin, изменит боковую панель с помощью службы боковой панели, будет ли это изменение видимым для других загруженных отложенных модулей?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

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

Для компонентов header и footer, если содержимое этих компонентовКомпоненты будут изменены некоторым свойством @Input (что не должно иметь место для header & footer), или эти теги компонентов используются в нескольких местах в вашем приложении, тогда они могут подойти под SharedModule.Если они все статические, то эти компоненты обязательно должны принадлежать CoreModule.Поскольку вы используете эти теги компонентов только в одном месте.

Поскольку в моем приложении загружены модули с отложенной загрузкой, это вызовет проблему в будущем, например, если один модуль с отложенной загрузкой, например, Admin, изменит боковую панель с помощью боковой панелислужба, будет ли это изменение видимым для других лениво загруженных модулей?

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

0 голосов
/ 08 октября 2018

Я думаю, вам лучше поместить их в основной модуль, так как мы собираемся загрузить его только один раз.Все остальные модули будут загружены в розетку маршрутизатора.Вы можете поместить туда любой общий компонент, например ConfirmBox, AlertBox, например виджеты.В любом случае, мы обращаемся к этим компонентам из службы.

В любом случае модуль ядра не должен зависеть от других, а другие модули могут зависеть от модуля ядра.

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