【发布时间】:2019-04-15 02:58:24
【问题描述】:
我正在做一个相当简单的项目,但这个问题让我很困惑!
除了 routerLinkActive 没有保持激活的一个小问题外,我已经设置了路由并且工作正常。
我还不能在问题中嵌入图片,所以请点击链接查看我得到的结果
当我转到:http://localhost:4200/1 时,“1”菜单项在导航栏中正确显示为活动状态。如果我随后转到子路线:http://localhost:4200/1/top100 '1' 菜单仍保持设置为活动状态。这正是我希望它工作的方式。
但是,在非常相似的设置中,我将“4”菜单项转到:http://localhost:4200/2/A。这正确地将顶部导航栏中的“4”显示为活动状态,并将“测试 A”按钮显示为活动状态。但是当我转到http://localhost:4200/2/B 时,“测试 B”按钮正确显示为活动状态,但主导航栏在“4”上丢失了活动标志。
下面附上代码sn-ps:
导航栏
<ul class="navbar-nav">
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" routerLink="/1">1</a>
</li>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/notUsed', 'notUsed']">2</a>
</li>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/notUsed', 'notUsed']">3</a>
</li>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" [routerLink]="['/2', 'A']">4</a>
</li>
<li class="nav-item" routerLinkActive="active">
<a class="nav-link" routerLink="/notUsed">5</a>
</li>
</ul>
按钮组
<div class="btn-group-vertical fixedWidthButtonHonour mb-3" role="group" aria-label="Senior Grades">
<button type="button" class="btn btn btn-outline-danger" [routerLink]="['/2', 'A']" routerLinkActive="active">Test A</button>
<button type="button" class="btn btn btn-outline-danger" [routerLink]="['/2', 'B']" routerLinkActive="active">Test B</button>
</div>
路线
const appRoutes: Routes = [
{ path: '', component: HomeComponent, pathMatch: 'full' },
{ path: '1', component: Component1 },
{ path: '1/top100/:name', component: ComponentTop100 },
{ path: '2', component: Component2 },
{ path: '2/:viewType', component: Component2 },
{ path: '**', redirectTo: '/', pathMatch: 'full' }
];
我无法弄清楚这两个示例之间的区别。如果有人有任何实现我所追求的见解或工作演示,那就太好了。
谢谢 大卫
【问题讨论】:
标签: angular angular-routing routerlinkactive