2016-11-01 10 views
1

である私が使用できるようにしたい私のHTMLでAngular2は* ngIfルートは、私は、ルート/メイン/アイテム持っている特定のparam

http://localhost:5000/main/item/-JJHkhfghsiu45ve 

を*これがルートかどうかを確認するには私はこれにルータのアウトレットを使いたくない。

私が抱いている問題は、paramに関するものかもしれません。

は、私のような何かをやっている:

<div *ngIf="this.router.url !== '/main/item:id'"> 

しかし、それはいつものように偽これを見ていると、これは私のために動作しません。 ありがとう

+0

重要なものである私は、あなたが '* ngIf =" router.isActive( '/メイン/アイテム'、偽を使用することができると思います) "。未検証。 –

+0

この質問を見る=> https://stackoverflow.com/questions/33520043/how-to-detect-a-route-change-in-angular-2。具体的には:現在のルータのhttp://stackoverflow.com/a/38229468/1994708。 – flamusdiu

答えて

2

私はあなたの*ngIfをブール値に設定します。それらの行に沿ってngOninItまたは何かを使用して、あなたのURLに応じてそのブールの値を変更します。ここには働いてplunkerです。注:plunkerのhome.tsファイルのみに焦点を当てます。必要に応じて*ngIfの値を変更して、これが機能していることを証明することもできます。 PS申し訳ありませんplunkerがここに無関係な情報で満たされている

はしかし...

import { Component } from '@angular/core'; 
import { Router, RouterModule } from '@angular/router'; 

@Component({ 
    template: `<h1>home</h1> <button (click)="Nav()">nav to second</button> 
    <div *ngIf="!mybool">I am only showing if my route is home!</div> 
    `, 
    styleUrls:['style.css'], 
}) 

export class HomeComponent { 
mybool:boolean; 
constructor(private router: Router,){ 
console.log(this.router.url); 
} 

ngOnInit(
    showDiv(){ 
    if(this.router.url === '/'){ 
    this.mybool=false; 
    } 
} 
)