angular之RouterLink花式跳轉

莫莫莫發表於2018-04-27

routerLink本身支援兩種寫法:

<a routerLink="detail">
</a>

<a [routerLink]="['detail']">
</a>
複製程式碼

routerLink的值有哪些寫法,又有什麼區別呢?

假設當前路由為

`http://localhost:4200/#/doc/license`
複製程式碼
  • 寫法1 : 絕對路徑 / + 路由名字
 <!--跳到 http://localhost:4200/#/doc/license -->
 <a  [routerLink]="['/doc/demo']" >跳呀跳</a>
 
  <!--跳到 http://localhost:4200/#/demo -->
  <a  [routerLink]="['/demo']" >跳呀跳</a>
複製程式碼

那麼url是 http://localhost:4200/#/doc/demo上跳轉,即 http://localhost:4200/#/ + 你要跳轉的絕對路徑

  • 寫法2 : 一個路由名字 路由名字
 <a  [routerLink]="['demo']" >跳呀跳</a>
複製程式碼

那麼url是http://localhost:4200/#/doc/license/(demo),即http://localhost:4200/#/doc/license + 你要跳轉的絕對路徑,這時候它會給你的路由加些東西變成 /(demo),跳轉不了。

  • 寫法3 :相對路徑 ../路由名字
 <a  [routerLink]="['../demo']" >跳呀跳</a>
複製程式碼

那麼url是 http://localhost:4200/#/doc/demo,即 http://localhost:4200/#/doc + 你要跳轉的相對路徑。它會從上一級開始尋找。

  • 寫法4 : ./路由名字, 即現在的路由+你寫的要跳去的路由
 <a  [routerLink]="['./demo']" >跳呀跳</a>
複製程式碼

那麼url是 http://localhost:4200/#/doc/license/demo上,即 http://localhost:4200/#/doc/license + 你要跳轉的相對路徑。它會從當前路由的下一級開始尋找此匹配的路由進行跳轉。

| 更多API用法更新於 github

相關文章