У меня есть небольшое угловое приложение, которое использует шаблон CoreModule
и SharedModule
.Поскольку мое приложение в настоящее время довольно маленькое, я импортировал SharedModule
в корневой модуль AppModule
.У меня также есть лениво загруженный административный модуль с именем AdminModule
, но, похоже, у него нет доступа к общему модулю, даже если он был импортирован в корневой модуль.Я должен явно импортировать SharedModule
снова, чтобы использовать его внутри компонентов модуля администратора.Почему это?Если мне придется повторно импортировать их снова внутри каждого лениво загруженного модуля, какой смысл импортировать их в корневой модуль?
AppModule
...
imports: [
BrowserModule,
BrowserAnimationsModule,
MatExpansionModule,
AppRoutingModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule, // imports firebase/firestore, only needed for database features
AngularFireAuthModule, // imports firebase/auth, only needed for auth features,
AngularFireStorageModule, // imports firebase/storage only needed for storage features
SharedModule, // To be imported on each feature module, instead of AppModule. For now, this is fine though
CoreModule,
HttpClientModule
],
...
Модуль маршрутизации приложения (Lazy загружен)
const routes: Routes = [
{
path: 'admin',
loadChildren: './admin/admin.module#AdminModule',
canActivate: [AdminAuthGuard]
}]
AdminModule
...
imports: [CommonModule, AdminRoutingModule, SharedModule, CoreModule],
Например, если у меня есть компонент нижнего колонтитула внутри SharedModule
и попробуйте использовать его в моем AdminHomeComponent
, который является частью AdminModule
, я получаю сообщение об ошибке (без импорта SharedModule
).Все отлично работает, когда я импортирую его.