Я пишу приложение, где все функции имеют собственный модуль (функция может быть страницей или частью страницы). Это потому, что мы хотим, чтобы у всех функций была собственная логика домена, службы, директивы и компоненты, т.е. В модуле панели мониторинга появился виджет ChartComponent, который я не хочу раскрывать для других представлений, таких как логин или профиль.
Проблема заключается в том, что при работе с маршрутизацией в Angular 2 вы всегда направляетесь к определенному компоненту, а не к модулю.
В нашем случае для настройки маршрута для компонента "/dashboard": DashboardComponent нам нужно объявить DashboardComponent в app.module.ts, и это прекрасно, но поскольку мы все еще находимся в модуле app.module наш CharComponent не отображается и не будет отображаться в нашей DashboardComponent, поскольку он объявлен в dashboard.module.ts, а не app.module.ts.
Если мы объявим ChartComponent в app.module.ts, он работает так, как должен, но мы потеряли архитектуру для нашего приложения.
Структура файла для приложения выглядит примерно так:
└─ src/
└─ app/
├─ app.module.ts
├─ app.component.ts
├─ app.routing.ts
├─ profile/
| ├─ profile.module.ts
| └─ profile.component.ts
├─ login/
| ├─ login.module.ts
| └─ login.component.ts
└─ dashboard/
├─ dashboard.module.ts
└─ dashboard.component.ts
└─ chart/
└─ chart.component.ts