当我重新加载/刷新我的应用程序时,将显示菜单栏中的路线,并且所有项目均设置为active
。我已经为路线配置了:
export const routes: Routes = [
{
path: '', pathMatch: 'full', redirectTo: 'home',
data: { title: undefined }
},
{
path: 'login', component: LoginComponent,
data: { title: 'Login' }
},
{
path: 'home', component: MainComponent,
data: { title: 'Home' }
},
{
path: 'search', component: SearchListComponent,
data: { title: 'Search'}
},
];
在菜单栏中,我将代码简化为以下代码:
<div class="container">
<a routerLinkActive="is-active"
routerLink="/login">Login</a> |
<a routerLinkActive="is-active"
routerLink="/search">MySearch</a> |
<a routerLinkActive="is-active"
routerLink="/home">MyHome</a> |
</div>
<div >
<div *ngFor="let route of router.config">
<a routerLinkActive="is-active"
[routerLink]="userName? ('/'+route.path ): '/' ">{{route.data.title}}... {{userName? ('/'+route.path ): '/' }} </a> |
</div>
</div>
其中两次包含我的路线-几乎相同-除了第二个代码动态生成项目外。第一个在刷新后正确选择项目,而第二个失败。
根据docu routerLink
可以用作字符串
任何人都可以解释我为什么第二个失败了吗?
编辑: 根据要求的头像
,但是选择其他链接后,内容保持不变!比所有链接都能正确显示!
EDIT2
我能够reproduce错误。主要问题是对routerlink
的评估已为时已晚,我遇到了与已经reported bug相同的问题。
我当前的解决方法:最初设置userName
:-/
答案 0 :(得分:1)
尝试将[routerLinkActiveOptions]="{ exact: true }"
添加到您生成的链接中。默认情况下,Angular路由器将匹配任何部分。