2016-09-16 93 views
4

我使用角2與引導4.我可以在活動選項卡使用下面的代碼更改用於:更改活動標籤時router.navigate被

navbar.component.html

<nav class="navbar navbar-fixed-top navbar-light bg-faded"> 
    <button class="navbar-toggler hidden-sm-up" type="button" data-toggle="collapse" data-target="#navbar"> 
    &#9776; 
    </button> 
    <div class="collapse navbar-toggleable-xs" id="navbar"> 
    <div class="container"> 
    <a class="navbar-brand" [routerLink]="['']">My App</a> 
    <ul class="nav navbar-nav navbar-right"> 
     <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: 
true}"> 
     <a class="nav-link" [routerLink]="['']">Home<span class="sr-only">(current)</span></a> 
     </li> 
     <li class="nav-item" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}"> 
     <a class="nav-link" [routerLink]="['/about']">About</a> 
     </li> 
     <li class="nav-item" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}"> 
     <a class="nav-link" [routerLink]="['/example']">Example</a> 
     </li>  
    </ul> 
    </div> 
    </div> 
</nav> 

行:

[routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}" 

作品以及在改變當前激活的標籤,但是當我使用類似導航到一個組件:

this.router.navigate(['']); 

活動標籤不會改變。在上面導航時有沒有辦法改變活動標籤?

+1

它應該是'routerLinkActive =「active」'不''[routerLinkActive] =「['active']」' – ranakrunal9

+2

都是有效的。 – j2L4e

+0

有些奇怪的事情正在進行,因爲我無法再現問題。我把這個叫做.router.navigate,它正確地改變了我的課程。這是Angular路由器的最新版本嗎? – Frank

回答

2

因此,基本上你想要在服務中使用高光照,並在你的URL等於特定狀態時調用該服務來應用你的風格。這是通過使用

this.router.url === '/myroute'

這裏是我的plunker完成。請注意,無論您使用鏈接還是按鈕,活動選項卡都會更改。這些按鈕是什麼使用this.router.navigate(['']);就像你問的問題