我使用 router.isActiveRoute 来确定哪个路由是活动的。在我第一次路由到home link
ormenu link
时,路由更改但未添加活动类。active class
在第二次单击时添加。
我认为这是 angular2 中路由器指令的错误。请告诉我为什么以及如何解决它?
应用程序.ts
...
@Component({
selector: 'app',
directives: [ROUTER_DIRECTIVES],
templateUrl: 'app/components/app.html',
styleUrls: ['app/components/app.css']
})
@RouteConfig([
{ path: '/', component: Home, name: 'Home'},
{ path: '/menu', component: Menu, name: 'Menu'}
])
class AppComponent {
constructor(public router: Router) {
}
isActiveRoutes(routes) {
return this.router.isRouteActive(this.router.generate(routes));
}
}
应用程序.html
<a [routerLink]="['Home']">
<div class="icon-box" [class.active]="isActiveRoutes(['/Home'])">
<i class="icon ion-ios-list-outline"></i>
</div>
</a>
<a [routerLink]="['Menu']">
<div class="icon-box" [class.active]="isActiveRoutes(['/Menu'])">
<i class="icon ion-ios-bookmarks-outline"></i>
</div>
</a>
<router-outlet></router-outlet>
谢谢