我正在使用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(['']);
活动标签不会更改。有没有办法在上面导航时更改活动标签?
答案 0 :(得分:2)
所以基本上你想要在服务中使用高亮度,并在URL等于特定状态时调用该服务来应用你的风格。这是通过使用
完成的 this.router.url === '/myroute'
这是我的plunker。请注意,无论您使用链接还是按钮,活动选项卡都将更改。这些按钮就像你在问题中提到的那样使用this.router.navigate(['']);