在routerLinkActive =“ active”上更改按钮内子mat-icon的颜色

时间:2019-12-10 14:24:17

标签: html css angular angular-material angular-ui-router

我的网页上有一个带有项目列表的标题,每个项目中都有一个mat-icon子级。以下是其中一项。

<a [routerLink]="[ '/admin' ]" > 
   <button routerLink="['/admin']" routerLinkActive="active">
       <mat-icon color="warn">history</mat-icon>Audit
   </button>
</a>

routerLinkActive="active"上的CSS在按钮文本上效果很好,但我也想更改mat-icon的颜色,但似乎无济于事

4 个答案:

答案 0 :(得分:2)

最简单的方法是将其添加到CSS中-可能最好的方法是在全局中添加它:

  `app.use(express.urlencoded({ extended: true }));`

答案 1 :(得分:0)

看看这个answer,您可以做这样的事情

<a [routerLink]="[ '/admin' ]" > 
   <button routerLink="['/admin']" routerLinkActive="active" #rla="routerLinkActive">
       <mat-icon [ngClass]="{'color': rla.isActive ? 'warn' : 'primary'}">history</mat-icon>Audit
   </button>
</a>

或这个

<a [routerLink]="[ '/admin' ]" > 
   <button routerLink="['/admin']" routerLinkActive="active" #rla="routerLinkActive">
       <mat-icon [ngStyle]="{'color': rla.isActive ? 'warn' : 'primary'}">history</mat-icon>Audit
   </button>
</a>

请注意,这些答案未经测试

答案 2 :(得分:0)

RouterLinkActive将变量导出到模板,并具有一个告诉您当前处于活动状态的属性。

https://angular.io/api/router/RouterLinkActive#properties

https://github.com/angular/angular/blob/ead169a4022e2a2f5520e1c1a58f30692b90f7cd/packages/router/src/directives/router_link_active.ts#L77

   <button routerLink="['/admin']" routerLinkActive="active" #rla="routerLinkActive">
      <mat-icon [color]="rla.isActive && 'warn'">history</mat-icon>Audit
  </button>

如果warn的属性isActive true ,则上述将颜色设置为routerLinkActive

答案 3 :(得分:0)

<li>
            <a routerLink="/Clients" routerLinkActive="active">
                <span class="menu_icon"><i class="material-icons">group</i></span>
                <span class="menu_title">Clients</span>
            </a>
        </li>

> add this sytle in global css


.active i {
        color: #28A745;
    }
    .active span {
        color: #28A745;
    }