Angular路由routerLinkActive
Angular Routing routerLinkActive
出于某种原因,当我去 heroes/2 link 时,两个 link 都从 routerLinkActive 获得 .active class,但我只希望 c2.component应该得到它。我的错误是什么?
P.S。如果我去英雄 link = 只有这个 link 活跃。
const appRoutes: Routes = [
{ path: 'heros', component: c1},
{ path: 'heros/:id', component: c2},
];
<a routerLink="/heros" routerLinkActive="active">heros</a>
<a routerLink="/heros/2" routerLinkActive="active">hero 2</a>
您可以通过传递 exact: true 来配置 RouterLinkActive。这将仅在 url 与 link 完全匹配时添加 类。
<a routerLink="/heros" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact: true}">heros</a>
<a routerLink="/heros/2" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact: true}">hero 2</a>
您需要将 exact
参数设置为 true
,以便仅将 class 设置为完全匹配:
<a
routerLink="/heros"
routerLinkActive="active"
[routerLinkActiveOptions]="{exact: true}"
> heros </a>
出于某种原因,当我去 heroes/2 link 时,两个 link 都从 routerLinkActive 获得 .active class,但我只希望 c2.component应该得到它。我的错误是什么?
P.S。如果我去英雄 link = 只有这个 link 活跃。
const appRoutes: Routes = [
{ path: 'heros', component: c1},
{ path: 'heros/:id', component: c2},
];
<a routerLink="/heros" routerLinkActive="active">heros</a>
<a routerLink="/heros/2" routerLinkActive="active">hero 2</a>
您可以通过传递 exact: true 来配置 RouterLinkActive。这将仅在 url 与 link 完全匹配时添加 类。
<a routerLink="/heros" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact: true}">heros</a>
<a routerLink="/heros/2" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact: true}">hero 2</a>
您需要将 exact
参数设置为 true
,以便仅将 class 设置为完全匹配:
<a
routerLink="/heros"
routerLinkActive="active"
[routerLinkActiveOptions]="{exact: true}"
> heros </a>