Почему Angular routerLink (без ведущего sla sh) не работает при переходе к пустому пути? - PullRequest
0 голосов
/ 17 февраля 2020

Давайте возьмем это базовое c дерево навигации:

  • первичное
    • вторичное
      • глубокое

Посмотрите на мой проект Stackblitz .

Мои маршруты

const routes: Routes = [
  {
    path: "",
    component: PageParentComponent,
    children: [
      {
        path: "",
        component: PageChildPrimaryComponent
      },
      {
        path: "secondary",
        component: PageChildSecondaryComponent
      },
      {
        path: "secondary/deep",
        component: PageDeepComponent
      }
    ]
  }
];

Используя <a routerLink="..">, я могу успешно перейти на один уровень вверх и используя <a routerLink="../.."> два уровня. Однако, когда я использую двойные точки, чтобы go вернуться на «основную» страницу с любой более глубокой страницы, любой routerLink, который не начинается с sla sh, испортился; часть URL root (https://angular-ukxb4a.stackblitz.io/ или localhost:4200/ при локальном запуске) заменяется на %28. Когда я использую <a routerLink="/"> (sla sh вместо двойных точек), все в порядке.

Почему это происходит?

1 Ответ

1 голос
/ 17 февраля 2020

URL, который вы хотите go, равен

https://angular-ukxb4a.stackblitz.io/secondary

НЕ

https: //% 28secondary% 29 /

Начальный sla sh добавит путь к существующему пути. Я надеюсь, что это поможет вам.

...