Угловой заголовок относительно routerLink - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь создать глобальный заголовок в Angular6 с динамическим списком гиперссылок, которые различны для каждой страницы. Гиперссылки всегда ссылаются на некоторую страницу относительно текущего URL. Но routerLink-s не работают относительно в глобальном заголовке. Это означает, что, когда у меня есть ссылка на маршрутизатор в корневом заголовке приложения, и я пытаюсь сделать относительные ссылки на текущий, лениво загруженный модуль, который используется в настоящее время и для которого я загрузил меню.

Значение, если я нахожусь на URL

http://example.com/company/8/employee

А глобальное меню содержит гиперссылку

<a routerLink="./profile">

Затем, нажав на ссылку router, вы попадете на example.com/profile. Он действует как абсолютная ссылка. Теперь, если на той же странице я вставляю тот же код в компонент сотрудника, который загружается в качестве основного тела, он работает по-другому, в нем он перенаправляет меня.

http://example.com/company/8/employee/profile

Я не понимаю, почему бы не принять глобальное состояние URL-адреса маршрутизатора в качестве базы относительности, но вместо этого он пытается выполнить маршрутизацию от корня, где находится заголовок - в дереве маршрутизатора.

Как я могу управлять глобальными относительными меню в заголовке в Angular, если относительные URL-адреса там работают некорректно?

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Я нашел ответ через несколько недель.

Вам разрешено передавать по отношению к маршрутизатору, что помогает в этих случаях. Вы можете переслать другие компоненты ActivatedRoute и использовать их как базу относительности.

this._router.navigate(['../../method'], {relativeTo: this._activatedRoute});
0 голосов
/ 10 сентября 2018

Поскольку ./ является префиксом routerLink, он будет рассматривать текущий URL как основу для своего перенаправления.

./ - это не что иное, как относительный путь, поэтому, если вы введете <a routerLink="./profile"> в app.component, он будет перенаправлен на example.com/profile, а если вы поместите ту же ссылку в employee.component, он будет перенаправлен на http://example.com/company/8/employee/profile

Если вам требуется перенаправление по абсолютному пути, просто добавьте / (например: <a routerLink="/profile">), чтобы независимо от компонента он был перенаправлен на example.com/profile

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