Angular Относительный путь RouterLink не работает в компоненте с пустым путем - PullRequest
1 голос
/ 16 апреля 2020

Мой дочерний путь определен как

{ path: '', component: CartMainComponent, pathMatch: 'full' }

Весь путь выглядит так, когда я нахожусь в CartMainComponent http://mystype.com/brand/MyBrandId/cart В корзине я хочу перейти к /brand/MyBrandId/cart поэтому я использовал routerLink="../cart" в html. Но это дало мне следующую ошибку

Ошибка: невозможно сопоставить ни один маршрут. Сегмент URL: 'бренд / Rotiform / корзина / каталог'

Только когда я routerLink="../../../cart" работает

Это нелогично, даже если пустой путь рассматривается как дополнительный уровень относительного пути. Тем не менее, я ожидаю использовать '..' только дважды, но не трижды

Можно ли это исправить, чтобы я мог относительно go пройти по маршруту, не думая, есть ли какие-нибудь пустые пути?

1 Ответ

1 голос
/ 16 апреля 2020

Да, команда Angular добавила исправление для этой проблемы, но вам нужно включить его вручную, добавив

relativeLinkResolution: 'corrected' в root конфигурацию маршрутизатора. Т.е.

@NgModule({ imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'corrected'})], exports: [RouterModule] })

Но, пожалуйста, обратите внимание, что это «исправление» не решило всю ошибку. Вот почему он не включен по умолчанию. Этот PR описывает проблему: https://github.com/angular/angular/issues/26983 Пожалуйста, имейте это в виду.

RelativeLinkResolution также обсуждается в этой ветке github https://github.com/angular/angular/issues/13011

...