Я использую router.navigate в моем приложении, и не похоже, что ActivatedRoute отслеживает правильно. Сначала я лениво загружаю исходный модуль из app-routing.module :
const routes: Routes = [
{ path: 'home', component: HomeComponent },
{
path: 'plan-configuration',
loadChildren: () =>
import('./plan-configuration/plan-configuration.module').then(
p => p.PlanConfigurationModule
)
},
{ path: '', redirectTo: '/home', pathMatch: 'full' }
];
А затем вот маршруты в этом модуле:
const routes: Routes = [
{
path: '',
component: PlanConfigurationComponent,
children: [
{
path: 'fsa',
component: RaFsaComponent,
children: [
{
path: '',
redirectTo: 'client-profile',
pathMatch: 'full'
},
{
path: 'client-profile',
component: ClientProfileComponent
}
]
},
{
path: 'hsa',
component: HsaComponent
},
{
path: '',
redirectTo: 'hsa',
pathMatch: 'full'
}
]
}
];
Вот код маршрутизации в моем NavigationMenuComponent :
this.router
.navigate([this.categorySelected.code], {
relativeTo: this.route
});
Я вставляю ActivatedRoute в конструктор моего NavigationMenuComponent :
constructor(
private route: ActivatedRoute,
private router: Router,
service: NavigationService
) {
this.menuItems = service.getMenuItems();
}
И вот мое дерево компонентов:
Когда я нажимаю, чтобы загрузить PlanConfigurationModule , URL-адрес правильно становится следующим:
http://localhost:4200/plan-configuration/hsa
Затем я нажимаю на ссылку fsa , и URL-адрес корректно становится следующим:
http://localhost:4200/plan-configuration/fsa
Но когда я пытаюсь нажать на fsa child Я получаю сообщение об ошибке, которое не может соответствовать ни одному из маршрутов для этого:
plan-configuration/client-profile
Почему это не URL?
plan-configuration/fsa/client-profile
Я маршрутизирую относительно на активированный маршрут. Когда я сижу на этой странице:
http://localhost:4200/plan-configuration/fsa
... не должен ли активированный маршрут включать часть fsa ? Я, наверное, просто неправильно понимаю, как это работает. Любые советы с благодарностью.