У меня есть эта иерархия в моем приложении:
app/
app.module.ts
app.routing.ts
...
endpoints/
endpoints.module.ts
endpoints.service.ts
endpoints.routing.ts
...
indexes/
indexes.module.ts
indexes.routing.ts
...
Содержит мои файлы маршрутизации:
app.routing.ts
...
export const AppRoutes: Routes = [{
path: '',
component: MainLayoutComponent,
children: [{
path: 'endpoints',
loadChildren: './endpoints/endpoints.module#EndpointModule'
},{
path: 'indexes',
loadChildren: './indexes/indexes.module#IndexModule'
}
}];
endpoints.routing.ts
...
export const EndpointRoutes: Routes = [
{
path: '',
component: EndpointComponent
}
];
indexes.routing.ts
...
export const IndexesRoutes: Routes = [
{
path: '',
component: IndexesComponent
}
];
Это просто: когда я вызываю /endpoints/, вызывается EndpointComponent. То же самое для /indexes/ и IndexesComponent.
Теперь я хочу использовать службу конечных точек в моем модуле индексов. Я добавляю его в свой indexes.module.ts, который выглядит так:
...
import { EndpointsModule } from '../endpoints/endpoints.module';
import { EndpointsService } from '../endpoints/endpoints.service';
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(IndexRoutes),
EndpointsModule,
...
],
declarations: [
IndexComponent
],
providers: [
EndpointService
]
})
export class IndexModule {}
Это компилируется нормально. Но теперь, когда я загружаю /indexes/, появляется представление для /endpoints/. Я предполагаю, что он также импортирует маршрутизацию из модуля конечных точек, но я еще не совсем понимаю, как работает импорт. Файлы основного модуля и модуля конечных точек выглядят следующим образом (показывая биты, связанные с маршрутизацией, поскольку я думаю, что они имеют отношение к моей проблеме):
app.module.ts
...
import { AppRoutes } from './app.routing';
...
@NgModule({
declarations: [
AppComponent,
MainComponent,
...
],
imports: [
RouterModule.forRoot(AppRoutes),
...
],
...
bootstrap: [AppComponent]
})
export class AppModule { }
endpoints.module.ts
...
import { EndpointRoutes } from './endpoints.routing';
...
@NgModule({
...
imports: [
RouterModule.forChild(EndpointRoutes),
...
],
})
export class EndpointModule {}