routerLink绝对网址

Ghe*_*lay 16 angular2-routing angular

角度文档:

路由器链接指令始终将提供的输入视为当前URL的增量.

例如,如果当前网址是/user/(box//aux:team).然后,以下链接<a [routerLink]="['/user/jim']">Jim</a>将生成链接/user/(jim//aux:team).

那么如何创建链接/user/jim

我试过['/user/jim', { outlets: { aux: null }}]但这不起作用.
即使它起作用也不是最佳解决方案.我宁愿寻找一种方法来导航到一个绝对网址,而不是取消可能的网点.

编辑:

在同一主题上,我有一个到根的链接:routerLink="/"就是这样,它重定向到我的应用程序的根目录,没有像绝对链接那样的出口.这里有趣的是我并不特别想要那个特定链接的行为,保持任何网点路线都很好......

vul*_*ulp 15

截至2018年8月,Angular文档说:

  • 如果第一段以/开头,则路由器将从应用程序的根目录查找路由。
  • 如果第一段以./开头,或者不是以斜杠开头,则路由器将查找当前已激活路由的子级。
  • 如果第一段以../开头,则路由器将上升一个级别。


zur*_*fyx 9

您可以使用相对路径:

<a [routerLink]="['./']"
Run Code Online (Sandbox Code Playgroud)

将重定向到您的上级父级(/user/jim)

<a [routerLink]="['']"
<a [routerLink]="['/']"
Run Code Online (Sandbox Code Playgroud)

将重定向到 '/'

  • `./`不会重定向到它的``/`的父节点,但这仍将保持辅助路由并重定向到`/ user /(jim // aux:team)`. (3认同)

小智 7

我想最简单的方法是

<a [routerLink]=['/path/you/want', varibleToBeUsed]></a>
Run Code Online (Sandbox Code Playgroud)

例子

let link.path = 'something';
Run Code Online (Sandbox Code Playgroud)
<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
-->
Run Code Online (Sandbox Code Playgroud)