Я использую router.isActiveRoute для определения того, какой маршрут активен.
В первый раз, когда я направляюсь в home link
или menu link
, маршрут изменяется, но активный класс не добавляется. active class
добавляется при втором щелчке.
Я думаю, что это ошибка в директиве Router в angular2. Пожалуйста, скажите мне, почему и как это исправить?
app.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));
}
}
app.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>
Спасибо