2017-05-08 75 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>元素上使用这一切。