Reputation: 12005
I have the following link:
<a routerLink="{{item._url}}" (click)="setActiveLink(i, item._url, menu)"
[routerLinkActive]="['is-active']">Link</a>
How to extent [routerLinkActive]
for custom URL to highlight link as active?
I can use ngClass
but how to get url to compare with my url?
I did this:
<a [ngClass]="{'is-active': isUrl()}" routerLink="{{item._url}}" (click)="setActiveLink(i, item._url, menu)"
[routerLinkActive]="['is-active']">{{item.title | translate}}</a>
And method is:
public isUrl(): boolean {
const currentUrl = this.router.url;
const arrUrl = ['replacements'];
for (let i = 0; i < arrUrl.length; i++) {
return currentUrl.indexOf(arrUrl[i]) > -1;
}
return false;
}
It highlights all links in menu
Upvotes: 1
Views: 948
Reputation: 9687
use routerLinkActive="class-name"
and routerLinkActiveOptions="{exact:true}"
for active route link?
.html file
<nav>
<div class="collapse navbar-collapse justify-content-end" id="nav-content">
<ul class="navbar-nav" id="nav">
<li class="nav-item">
<a class="nav-link" routerLink="" routerLinkActive="class-name" routerLinkActiveOptions="{exact:true}">About</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/experience" routerLinkActive="class-name" routerLinkActiveOptions="{exact:true}">Experience</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/skills" routerLinkActive="class-name" routerLinkActiveOptions="{exact:true}">Skills</a>
</li>
<ul>
<div>
<nav>
css/.scss file
.class-name{
color:red;
...
}
Upvotes: 1