首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于routerLinkActive的角高亮

基于routerLinkActive的角高亮
EN

Stack Overflow用户
提问于 2019-07-07 13:05:43
回答 1查看 725关注 0票数 1

我想根据路由切换routerLinkActive的高亮显示,我有一个仪表板组件,仪表板菜单项和标签菜单项都指向同一个组件,我想根据仪表板的路由向li项添加类。

代码语言:javascript
复制
http://localhost:4300/dashboard

对于标签来说,路线是

代码语言:javascript
复制
http://localhost:4300/dashboard/5d1bb53877ed8702d8a01940

菜单项的代码

代码语言:javascript
复制
 <ul class="sidebar-nav">
                <li [ngClass]="{ active: rlal && rlal.isActive == false }">
                  <a [routerLink]="['/dashboard']" (click)="loadSnippet(null)">
                    <mat-icon>dashboard</mat-icon>
                    <span>Dashboard</span>
                  </a>
                </li>

     <h3 *ngIf="labelList && labelList.length!=0">Labels</h3>
              <ul class="sidebar-nav">
                <li *ngFor="let label of labelList" [ngClass]="rlal && rlal.isActive ? 'active' : ''"
                  routerLinkActive="rlal.isActive">
                  <a [routerLink]="['/dashboard', label._id]" routerLinkActive #rlal="routerLinkActive"
                    (click)="loadSnippet(label)">
                    <mat-icon>label</mat-icon>
                    <span>{{ label.label_name }} </span>
                  </a>
                </li>
              </ul>

路线:

代码语言:javascript
复制
 {
    path: "dashboard",
    component: DashboardComponent,
    canActivate: [LoggedInGuard]
  },
  {
    path: "dashboard/:labelId",
    component: DashboardComponent,
    canActivate: [LoggedInGuard]
  }

高亮显示对于单个标签项很好,但是对于仪表板,li没有被高亮显示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-07 13:45:22

如果仅在没有路由参数的情况下希望仪表板链接处于活动状态,则需要将routerLinkActive[routerLinkActiveOptions]="{exact: true}"添加到仪表板li节点。

另外,您不需要通过active设置ngClass类,因为routerLinkActive会为您设置这个类。

代码语言:javascript
复制
<li routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}">
  <a routerLink="/dashboard" (click)="loadSnippet(null)">
    <mat-icon>dashboard</mat-icon>
    <span>Dashboard</span>
  </a>
</li>

 ...

<li routerLinkActive="active" *ngFor="let label of labelList">
  <a [routerLink]="['/dashboard', label._id]" (click)="loadSnippet(label)">
    <mat-icon>label</mat-icon>
    <span>{{ label.label_name }}</span>
  </a>
</li>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56922414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档