Угловая 5 навигация - PullRequest
0 голосов
/ 03 мая 2018

Учитывая, что я нахожусь на маршруте

/parentOne/param1/param2/child

Можно ли как-нибудь перейти к этому другому маршруту, не пройдя весь путь (/param1/param2/child)?

/parentTwo/param1/param2/child

Решение, которое у меня есть сегодня:

const path = this.router.url.replace(regex, 'parentTwo');
this.router.navigate([path]);

Решение, которое я хотел бы реализовать:

this.router.navigate(['parentTwo', '...']);

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Проверьте NavigationExtras. https://angular.io/api/router/NavigationExtras Используя относительный путь и относительный путь, вы можете перемещаться

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

Пример:

const appRoutes = [
  {
    path: 'p1', component: P1,
    children: [
      {
        path: ':id',
        component: P1C
      }
    ]
  },
  {
    path: 'p2', component: P2,
    children: [
      {
        path: ':id',
        component: P2C
      }
    ]
  },
];

this.r.navigate(['../../p1', '2'], {relativeTo: this.a})
0 голосов
/ 09 мая 2018

Вы можете получить текущий URL в таком компоненте, например, как:

constructor(route: ActivatedRoute; router: Router) {      
   const url: Observable<string> = route.url;
  }
}

Затем вы можете использовать this.router.navigate(url) для перехода к определенному URL.

...