У меня проблема с навигацией по маршрутизатору с ленивой загрузкой.Буду признателен, если кто-нибудь прояснит вопросы ниже. Спасибо.
app-routing.module
const routes: Routes = [
{ path: 'home', component: HomeComponent},
{ path: Details, loadChildren: 'pathToDetailsModule'}
];
details.module.ts
const routes: Routes = [
{
path: '', component : DetailsComponent,
childern : [
{path: '' , redirectTo: prodType},
{path: prodType , loadChildren: pathtoModuleProd},
{path: CusDetails, loadChildren: pathtoModuleCustomer},
{path: EmpDetails, loadChildren: pathToModuleEmp}
]
},
];
Первоначально, когда янажмите Details (app-routing.module), DetailsModule получает загрузку и DetailsComponent и по умолчанию перенаправляет на prodType.На моей странице отображается ProdType (дочерний).Теперь я хочу перейти к CusDetails.
Проблемы:
# 1.
На данный момент
currentRoute = this.activatedRoute.snapshot.url[0].path
дает результат Details
(родитель) вместо prodType
(ребенок).Ленивый загруженный модуль добавляет пустой путь?Теперь я с ребенком - prodType
и хочу перейти к ребенку - CusDetails
).Насколько я знаю, чтобы загрузить родного брата CusDetails-
this.router.navigate(['../CusDetails'],{relativeTo: this.route}); // expected
, но в моем случае я использую код ниже, чтобы загрузить родного брата, потому что currentRoute равен Details
(parent).
this.router.navigate(['CusDetails'], { relativeTo: this.route});
Почему currentRoute дает результат Details
вместо prodType
?Я был бы признателен за объяснение.
# 2.
Теперь скажите, что я нахожусь в CusDetail и хочу перейти к его EmpDetails, используя
this.router.navigate(['../EmpDetails'],{relativeTo: this.route});
, и мы получим localhost:4200/Details/CusDetails/EmpDetails
но если я использую приведенный ниже код, он работает нормально.
this.router.navigate(['../../EmpDetails'],{relativeTo: this.route});
Почему он не работает с одним?
'../'
Буду признателен за объяснение.