Я пытаюсь лениво загрузить компонент в ionic Angular, и у меня есть маршрут (../app/buildings/:buildingId), чтобы не выдавать ошибки при переходе к нему, но он не загружает нужный компонент.
Я думаю, что это по умолчанию для родителя, но я не знаю, как это исправить. Я пробовал некоторые вещи (не ленивая загрузка / размещение всего этого в app.module), но я не могу это исправить. Любая помощь приветствуется.
вкладки.маршрутизатор.модуль.тс
{
path: 'app',
component: TabsPage,
children: [
{
path: 'home',
children: [
{
path: '',
loadChildren: '../tab1/tab1.module#Tab1PageModule'
}
]
},
{
path: 'buildings',
children: [
{
path: '',
component: Tab2Page,
resolve: {buildings: BuildingResolverService},
loadChildren: '../tab2/tab2.module#Tab2PageModule'
}
]
},
{
path: 'tab3',
...
tab2.module.ts
export const tab2Routes: Routes = [
{
path: ':buildingId',
component: BuildingComponent
}
];
@NgModule({
exports: [RouterModule],
imports: [
IonicModule,
CommonModule,
FormsModule,
RouterModule.forChild(tab2Routes)
],
declarations: [
BuildingComponent
]
})
export class Tab2PageModule {}
Переход к /buildings загружает нужный компонент, /buildings/1 — нет. Я ожидаю, что второй маршрут сделает то же самое, я думаю, что он по умолчанию соответствует первому, потому что, может быть, он тоже совпадает? я не уверен, как это исправить, если это так.
Я надеюсь, что я был достаточно ясен





Lazyload в Ionic мало чем отличается от стандартного проекта Angular. Ленивая загрузка автоматически настраивается системой ionic page. Дополнительную информацию можно найти здесь.
Ваш tab2Routes должен иметь маршрут '' по умолчанию Tab2Component и :buildingId как BuildingComponent (как у вас уже есть):
export const tab2Routes: Routes = [
{
path: '',
component: Tab2Page
},
{
path: ':buildingId',
component: BuildingComponent
}
];