如何捕获* ngIf

时间:2017-06-08 07:28:08

标签: angular angular2-routing angular2-template

所以我希望在特定页面被击中时,我的Header上的锚元素会消失。当该页面被击中时,如何在* ngIf中捕获url。

我有一个标题,所有页面都保持相同。当我在/ home路由时,只需要隐藏一个锚元素。如何在* ngIf中找到这个“/ home”?

* ngIf =“href ='/ home'”无效。任何替代方案?

4 个答案:

答案 0 :(得分:10)

//mycomponent.component.ts
class MyComponent {
    constructor(private router: Router){

    }
}

//mycomponent.component.html
    <div *ngIf="router.url === '/some/route'">

    </div>

答案 1 :(得分:1)

我之所以来到此页面是因为我遇到的问题与Ravy相同,但是建议的解决方案对我来说并不可行。

如果您将路径与查询参数一起使用,则可接受的答案不起作用。

这是我使用的解决方案:

//mycomponent.component.ts
class MyComponent {
constructor(public router: Router){

}
}

//mycomponent.component.html
<div *ngIf="router.isActive('/some/route')">

</div>

答案 2 :(得分:0)

您可以使用location.path()方法检查当前路径路径,并确定是否已激活/home路由。

*ngIf="isHomeRouteActivated()"

<强>代码

//Inject `Location` dependency before using it
isHomeRouteActivated(): boolean{
    //Find more better way to do it.
    return this.location.path().indexOf('/home') > -1;
}

答案 3 :(得分:0)

// mycomponent.component.ts

class MyComponent {
    constructor(public router: Router){

    }
}

// mycomponent.component.html

<div *ngIf="this.router.url === '/some/route'">

</div>