ng2中,可以通過
template: `
<h1>Angular Router</h1>
<nav>
<a routerLink="/crisis-center" routerLinkActive="active">Crisis Center</a>
<a routerLink="/heroes" routerLinkActive="active">Heroes</a>
</nav>
<router-outlet></router-outlet>
`
給激活的路由綁定動態(tài)class,通過設置class樣式即可設置激活的路有鏈接的樣式。
但是當頁面跳到其他路由(上面兩個以為的其他路由),兩個路由鏈接都不處于激活狀態(tài),失去class樣式。
不過可以通過RouterLinkActive特性讓路由鏈接保持激活狀態(tài)
RouterLinkActive指令會基于當前的RouterState對象來為激活的RouterLink切換CSS類。 這會一直沿著路由樹往下進行級聯(lián)處理,所以父路由鏈接和子路由鏈接可能會同時激活。 要改變這種行為,可以把[routerLinkActiveOptions]綁定到{exact: true}表達式。 如果使用了{ exact: true },那么只有在其URL與當前URL精確匹配時才會激活指定的RouterLink。
所以只要通過設置父子路由即可。
符:路有鏈接傳參方式:
<nav class="app_nav">
<div *ngFor="let item of currentUser?.frontSet;let last = last;" [isLast]="last" (lastDone)="initVav()">
<a [routerLink]="item.code" [queryParams]="{userName : currentUser.name}" routerLinkActive='active'>
{{item.moduleName}}
</a>
</div>
</nav>
下一篇講到的動態(tài)路由替代方案也會用到這段代碼