子路由上的 RouterLinkActive 全部为 false
RouterLinkActive on children routes all false
我有以下子路线:
{ path: '', component: LoginSingupComponent,
children: [
{ path: 'login', component: LoginComponent },
{ path: 'singup', component: SingupComponent },
]
},
导航到 /login
或 /singup
工作正常(已加载正确的组件)。
这是摘自 LoginSingupComponent
<nav md-tab-nav-bar class="mb-1">
<a md-tab-link routerLink="/login" routerLinkActive [routerLinkActiveOptions]="{exact: true}" #rla="routerLinkActive" [active]="rla.isActive">Entrar {{rla.isActive}}</a>
<a md-tab-link routerLink="/singup" routerLinkActive [routerLinkActiveOptions]="{exact: true}" #rla="routerLinkActive" [active]="rla.isActive">Criar uma conta{{rla.isActive}}</a>
</nav>
当开启 /login
所有 rla.isActive == false
当开启 /singup
所有 rla.isActive == true
尝试过 exact: true
这样试试:
<nav md-tab-nav-bar class="mb-1">
<a md-tab-link [routerLink]="['/']" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}">Home</a>
<a md-tab-link [routerLink]="['/login']" routerLinkActive="active">Login</a>
<a md-tab-link [routerLink]="['/singup']" routerLinkActive="active">Signup</a>
</nav>
找到问题了。
这是因为我用相同的变量名导出了两个 rounterLinkActive,这导致了这种奇怪的行为。
<a md-tab-link routerLink="/auth/login" routerLinkActive [active]="rlal.isActive" #rlal="routerLinkActive">Entrar {{rlal.isActive}}</a>
<a md-tab-link routerLink="/auth/singup" routerLinkActive [active]="rlas.isActive" #rlas="routerLinkActive">Criar uma conta{{rlas.isActive}}</a>
问题解决。
我有以下子路线:
{ path: '', component: LoginSingupComponent,
children: [
{ path: 'login', component: LoginComponent },
{ path: 'singup', component: SingupComponent },
]
},
导航到 /login
或 /singup
工作正常(已加载正确的组件)。
这是摘自 LoginSingupComponent
<nav md-tab-nav-bar class="mb-1">
<a md-tab-link routerLink="/login" routerLinkActive [routerLinkActiveOptions]="{exact: true}" #rla="routerLinkActive" [active]="rla.isActive">Entrar {{rla.isActive}}</a>
<a md-tab-link routerLink="/singup" routerLinkActive [routerLinkActiveOptions]="{exact: true}" #rla="routerLinkActive" [active]="rla.isActive">Criar uma conta{{rla.isActive}}</a>
</nav>
当开启 /login
所有 rla.isActive == false
当开启 /singup
所有 rla.isActive == true
尝试过 exact: true
这样试试:
<nav md-tab-nav-bar class="mb-1">
<a md-tab-link [routerLink]="['/']" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}">Home</a>
<a md-tab-link [routerLink]="['/login']" routerLinkActive="active">Login</a>
<a md-tab-link [routerLink]="['/singup']" routerLinkActive="active">Signup</a>
</nav>
找到问题了。
这是因为我用相同的变量名导出了两个 rounterLinkActive,这导致了这种奇怪的行为。
<a md-tab-link routerLink="/auth/login" routerLinkActive [active]="rlal.isActive" #rlal="routerLinkActive">Entrar {{rlal.isActive}}</a>
<a md-tab-link routerLink="/auth/singup" routerLinkActive [active]="rlas.isActive" #rlas="routerLinkActive">Criar uma conta{{rlas.isActive}}</a>
问题解决。