我正在尝试在Angular(v2.4.5)中构建一个标签菜单。根据路线选项卡处于活动状态。
例如我有这条路线:
const routes: Routes = [
{
path: 'tab1',
component: Tab1Component,
},
{
path: 'tab2',
component: Tab2Component,
}
];
如果用户输入地址http://localhost/tab2
我希望tab2
突出显示(更改标签css)。
实现这一目标的最佳方法是什么?
答案 0 :(得分:5)
<强> RouterLinkActive 强>
允许您在链接的路径变为时向元素添加CSS类 活性
<a routerLink="/user/bob" routerLinkActive="class1 class2">Bob</a>
<a routerLink="/user/bob" [routerLinkActive]="['class1', 'class2']">Bob</a>
您可以将RouterLinkActive实例分配给模板变量,并直接检查isActive状态:
<a routerLink="/user/bob" routerLinkActive #rla="routerLinkActive">
Bob {{ rla.isActive ? '(already open)' : ''}}
</a>
https://angular.io/docs/ts/latest/api/router/index/RouterLinkActive-directive.html
答案 1 :(得分:1)
在您的链接上使用routerLinkActive="active"
,您将拥有以下内容:
<nav>
<a routerLink="/tab1" routerLinkActive="active">TAB 1</a>
<a routerLink="/tab2" routerLinkActive="active">TAB 2</a>
</nav>
在您的CSS中,您将为导航链接添加active
课程:
nav {
color: black;
}
nav .active {
color: orange;
}
有关路线here的更多信息。