2017-05-08 94 views
1

活動路由我想顯示活動和非活動的菜單項不同的標記,這樣的活動菜單項不包括a標籤:角 - 檢測ngIf

<li> 
    <a routerLink="/abc">Inactive</a> 
</li>  
<li>Active</li> 

routerLinkActive指令並不在這裏幫助因爲它只能爲活動路線添加一些類別,但不能使用不同的標記。我明白,我可以注入Router到我的組件和使用這樣的

<li> 
    <ng-container *ngIf="router.isActive('/abc')">Active</ng-container> 
    <a *ngIf="!router.isActive('/abc')" routerLink="/abc">Inactive</a> 
</li> 

但有這種情況更好的內置解決方案?

回答

0

routerLinkActive指令在這裏沒有幫助,因爲它只能爲活動路由添加一些類,但不能使用不同的標記。

那麼實際上...

<input type="hidden" [routerLink]="'home'" routerLinkActive #home="routerLinkActive" /> 
<section *ngIf="home.isActive"></section> 

routerLinkActive變量綁定到一個模板變量,然後根據需要重複使用。不幸的是,唯一需要注意的是,在分析器擊中<section>之前需要解析#home,因此您無法在<section>元素上使用這一切。