使用 router.navigate 时更改导航栏中的活动选项卡
Change Active tab in navbar when router.navigate is used
我正在使用 Angular 2 和 Bootstrap 4。我可以使用以下代码更改活动选项卡:
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">
☰
</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(['']);
活动标签页不变。有没有办法在像上面那样导航时更改活动选项卡?
所以基本上你想在服务中突出显示并调用该服务以在 URL 等于特定状态时应用你的样式。这是通过使用
完成的
this.router.url === '/myroute'
这是我的 plunker。请注意,无论您使用链接还是按钮,活动选项卡都会发生变化。这些按钮就像您在问题
中问的那样使用 this.router.navigate(['']);
我正在使用 Angular 2 和 Bootstrap 4。我可以使用以下代码更改活动选项卡:
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">
☰
</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(['']);
活动标签页不变。有没有办法在像上面那样导航时更改活动选项卡?
所以基本上你想在服务中突出显示并调用该服务以在 URL 等于特定状态时应用你的样式。这是通过使用
完成的this.router.url === '/myroute'
这是我的 plunker。请注意,无论您使用链接还是按钮,活动选项卡都会发生变化。这些按钮就像您在问题
中问的那样使用this.router.navigate(['']);