typescript - Angular: Rutarea către componenta copil cu metoda navigate folosind un traseu relativ nu funcționează


Exemplul folosit este dat în acest stackblitz

Așa este structurat rutarea

    RouterModule.forRoot([
      {
        path: 'login',
        component: LoginViewComponent,
        children: [
          { path: 'home', component: HomeViewComponent },
          { path: 'catalog/:id', component: CatalogViewComponent }
        ]
      },
      { path: '**', redirectTo: 'login' }
    ])
  ],

Când sunt în componenta de autentificare, pot merge la componenta de acasă cu această rută absolută

this.navigate(['login/home']);

Pot folosi, de asemenea, navigateByUrl() astfel

this.navigateByUrl(['login/home']);

Dar nu înțeleg cum să fac rutare relativă cu navigate()

this.navigate(['home'], { relativeTo: this.route });
this.navigate(['/home'], { relativeTo: this.route });

Niciuna dintre aceste metode nu face rutare către homeComponent

Răspuns #1

În loc să creez rute copil, am doar o altă rută cu același nume în cale:

app-routing.module.ts

{ path: "activity", component: ActivityComponent },
{ path: "activity/orders", component: OrdersComponent },

Dacă sunt în componenta activity, navighez la comenzi prin:

this.router.navigate(["orders"], { relativeTo: this.route });`

import și constructor în componenta de activitate

import { Router, ActivatedRoute } from "@angular/router";
constructor(
  private router: Router,
  private route: ActivatedRoute,
) {