Создайте хороший URL-адрес с помощью Router navigate - PullRequest
0 голосов
/ 13 июля 2020

Я использую функцию navigate из класса Router для создания URL-адреса из компонента:

this.router.navigate(['/menu'], { queryParams: { level, parent: name } });

Он отлично работает с настройкой this.route.params, но мой URL-адрес выглядит как /menu?level=2&parent=A , что очень некрасиво.

Я бы хотел, чтобы URL-адрес выглядел так: /menu/2/A.

Я заменил router.navigate на location.go('/menu/' + level + '/' + name) (расположение от @angular/common). Проблема в том, что он не обновляет this.route.params.

Любое предложение, как я могу получить хороший URL-адрес и обновить route.params?

Конфигурация маршрутов:

const routes: Routes = [
  {
    path: '', component: HomeComponent
  },
  {
    path: 'menu/:level/:parent', component: MenuComponent, pathMatch: 'full'
  },
  {
    path: 'menu', component: MenuComponent, pathMatch : 'full'
  }
];

1 Ответ

0 голосов
/ 13 июля 2020

вам нужно что-то вроде этого?

this.router.navigate(['/menu', { level, parent: name }]);

Docs: https://angular.io/guide/router#accessing -query-parameters-and-fragments

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...