2016-09-16 3 views
4

を使用している:変更アクティブなタブrouter.navigateが、私は次のコードを使用して変更するには、アクティブなタブを取得することができますブートストラップ4との角度2を使用してい

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 = "アクティブ"ではありません[routerLinkActive] = "['アクティブ ']" ' – ranakrunal9

+2

両方が有効です。 – j2L4e

+0

私は問題を再現できなかったので、何か変わったことが起こっています。私はthis.router.navigateを呼び出し、それは私のクラスを正しく変更しています。これは角度ルータの最新バージョンですか? – Frank

答えて

2

基本的には、サービスでハイライトを作り、URLが特定の状態になったときにそのサービスを呼び出してスタイルを適用したいとします。これは、ここで私のplunkerある

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

を使用して行われます。リンクまたはボタンを使用するかどうかにかかわらず、アクティブなタブが変更されることに注意してください。ボタンは、あなたが質問で尋ねたようなthis.router.navigate(['']);を使用しています

関連する問題