Полный URL-адрес routerLink

Из angular docs:

Директива link маршрутизатора всегда обрабатывает предоставленный ввод как дельта к текущему URL-адресу.

Например, если текущий URL-адрес /user/(box//aux:team). Затем следующая ссылка <a [routerLink]="['/user/jim']">Jim</a> будет генерировать ссылка /user/(jim//aux:team).

Итак, как вы создаете ссылку на /user/jim?

Я пробовал ['/user/jim', { outlets: { aux: null }}], но это не работает.
Даже если бы это сработало, это не было бы оптимальным решением. Я скорее ищу способ перехода к абсолютному URL-адресу, чем отмена выходных точек.

EDIT:

По тому же вопросу у меня есть ссылка на корень: routerLink="/", который делает именно это, он перенаправляет на корень моего приложения без каких-либо точек, таких как абсолютная ссылка. Что смешно здесь, я не особо хочу, чтобы это поведение для этой конкретной ссылки, сохраняя любые маршруты маршрутов, было прекрасно...

Ответ 1

По состоянию на август 2018 года в angular документах говорится:

  • Если первый сегмент начинается с /, маршрутизатор будет искать маршрут от корня приложения.
  • Если первый сегмент начинается с./или не начинается с косой черты, маршрутизатор вместо этого будет искать дочерние элементы текущего активированный маршрут.
  • И если первый сегмент начинается с.. /, маршрутизатор поднимется на один уровень вверх.

Ответ 2

Вы можете использовать относительные пути:

<a [routerLink]="['./']"

Будет перенаправлен ваш верхний родитель (/user/jim)

<a [routerLink]="['']"
<a [routerLink]="['/']"

Будет перенаправлен на '/'

Ответ 3

Обход вашей проблемы может заключаться в том, чтобы поместить событие click на ваш элемент html, затем вы можете передать свой URL-адрес в обработчик событий и перенаправить в любом месте, используя "Router", импортированный из "@ angular/router":

<a (click)="reRoute(urlToRoute)"></a>

то в файле .ts:.

     import { Router} from '@angular/router';
..
    constructor(private router: Router,
        ) { }
..

    reroute(url) {
 this.router.navigate([url])
}

Надеюсь, что это решает вашу проблему!

Ответ 4

Я полагаю, что самый простой способ сделать это будет

<a [routerLink]=['/path/you/want', varibleToBeUsed]></a>

пример

let link.path = 'something';
<a [routerLink]="['/',link.path]">test</a>
<!--
www.test.com/something
-->


<a [routerLink]="['/user/jim',link.path]">test2</a>
<!-- this will append to the base path 
i.e. www.test.com/user/jim/something
-->



<a [routerLink]="['jim',link.path]">test3</a>  
<!-- this will append to current url path 
i.e. if your current path is www.test.com/login then it will append as
www.test.com/login/jim/something
-->