Angular - Apply style to element depending on sibling RouterLinkActive? Angular - Apply style to element depending on sibling RouterLinkActive? angular angular

Angular - Apply style to element depending on sibling RouterLinkActive?


You could bind the state of the routerLinkActive directive to whether or not a class is applied to an element as follows:

<a routerLink="page1" routerLinkActive="active" #rla="routerLinkActive"/><span [class.active-span]="rla.isActive"></span>.active-span { background-color: red;}

#rla is a template variableYou can find more info about this use case of the RouterLinkActive directive in the docs


you can apply the RouterLinkActive directive to an ancestor of a RouterLink.

<div routerLinkActive="active-link" [routerLinkActiveOptions]="{exact: true}">  <a routerLink="/user/jim">Jim</a>  <a routerLink="/user/bob">Bob</a></div>

More details here.

Hope this helps!!


You can call [class.active]="router.isActive('/parentUrlFragment',false)" on Parent Selector to have active class on the parent.

On your TS file :

import { Router, ActivatedRoute } from '@angular/router';constructor(public router: Router){}

Now you can access the isActive method of Router in your html;

So if you have a Nested Menu Like :

Product> Category 1> Category 2

Selecting any of the Category Link will have active class on Product selector with [class.active]="router.isActive('/product',false)"