如何*路由器链接上的ngIf?

时间:2017-02-09 14:27:53

标签: angular

我需要在某些页面上显示某些内容,在其他页面中它不应该是可见的。我该如何实现?它不起作用

*ngIf="[routerLink]="['/home']"

3 个答案:

答案 0 :(得分:24)

您可以从'@ angular / router'注入路由器并获取您当前的路由。

例如:

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

    }
}

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

</div>

答案 1 :(得分:1)

如果路线定义明确,您可以尝试以下操作:

isTournamentRoute() {
    return this.router.url.includes("/tournament");
}

哪个背负了未被接受的答案,以增加更多的灵活性。

答案 2 :(得分:0)

我正在使用其他方法。

模板:

    $(".selecttype2").click(function () {
        let labels = [];
        let arrays = [];

        $.post('/sensors_statistic', {device_id: $(this).context.id}, function(jData) {
            console.log(jData.data);
            for (let x in jData.data) {
                if (x == 'name') continue;
                labels.push({label: x});
                arrays.push(jData.data[x]);
            }
            console.log(arrays);

            plot1 = $.jqplot('chart_electro', arrays,
                {
                    title: jData.data['name'],
                    axes: {
                        xaxis: {
                            renderer: $.jqplot.DateAxisRenderer
                        }
                    },
                    series: labels,
                    legend: {
                        show: true,
                        location: "nw",
                        renderer: $.jqplot.EnhancedLegendRenderer
                    },
                    cursor: {
                        show: true,
                        zoom: true
                    }
                });
        });
    });

.ts文件:

<div class="col-12 col-sm-12 col-md-12 col-lg-12">
   <app-header></app-header>
   <app-banner *ngIf="isHomeRoute()"></app-banner>
</div>