簡體   English   中英

Angular 2 routerLinkActive 對於基本路徑始終處於活動狀態

[英]Angular 2 routerLinkActive always active for base path

我的導航欄有以下代碼:

<nav>
  <a [routerLink]="['/']" [routerLinkActive]="['nav-active']">HOME</a>
  <a [routerLink]="['/about']" [routerLinkActive]="['nav-active']">ABOUT</a>
  <a [routerLink]="['/records']" [routerLinkActive]="['nav-active']">RECORDS</a>
</nav>

問題是 HOME 導航點總是獲得類,因為 / 似乎總是處於活動狀態。 這可以通過一個小而簡單的解決方案來避免嗎?

謝謝您的幫助

編輯:

這是目前的解決方案:

[routerLinkActiveOptions]="{ 准確:真 }"

正如@TomRaine 在此答案中所建議的那樣,您可以將屬性[routerLinkActiveOptions]="{ exact: true }"添加到您的元素中:

<nav>
  <a [routerLink]="['/']" 
      [routerLinkActive]="['nav-active']"
      [routerLinkActiveOptions]="{ exact: true }">
    HOME
  </a>
  ...
</nav>

這似乎是一個已知問題。 此線程中詳細介紹了一些解決方法: https ://github.com/angular/angular/issues/8397

來自 Github 線程:

“您需要為您的 routerLink 添加一個附加選項。”

[routerLinkActiveOptions]="{ exact: true }"

然后,只有當您在確切的路線上時,您的回家路線才會處於活動狀態。 具有空路徑的主路由將在所有路由上部分匹配

你可以這樣做:

<button routerLink="/" [routerLinkActiveOptions]="{ exact: true }" routerLinkActive="nav-button-active"
                mat-button mat-raised-button
                class="w-100 mb-3 nav-buttons">
          Dashboard
</button>

只需添加屬性[routerLinkActiveOptions]="{ exact: true }"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM