2017-07-21 6 views
0

Ich möchte eine Kopfzeile und eine Fußzeile in Angular2 ausblenden, wenn ein Benutzer eine Werbeseite trifft.So erhalten Sie den aktuellen Komponentennamen in Angular2

https://example.com/promo 

Meine app compontent ist wie folgt:

<login-bar></login-bar> 
    <banner *ngIf="showComponent()"></banner> 
    <navbar *ngIf="showComponent()"></navbar> 
    <router-outlet></router-outlet> 
    <footer *ngIf="showComponent()"></footer> 

Wenn der Benutzer auf der Seite:/promo Ich möchte das Banner, navbar und Fußzeilenkomponente verbergen.

In meinem Code ich habe dies:

export class AppComponent { constructor(
     private router:Router 

) {} 

    showComponent(): Boolean { 
    **** 
    How do I check the current route? 
    **** 
    var currentRoute = ** enter magic here ** 
    return (currentRoute === "promo") ? true : false; 
    } 
} 

Also meine Frage, was ist der beste Weg, um die aktuelle Seite/route ich bin zu finden, so dass ich die Komponenten ein- oder ausblenden können?

+0

Versuchen Sie aktivierte Route oder Router zu arbeiten – Gary

Antwort

0

Um die aktuell aktivierte Route zu erhalten, können Sie den Dienst ActivatedRoute injizieren. Dadurch erhalten Sie unter anderem Zugriff auf eine Observable der URL der aktuellen Route.

export class AppComponent { 

    // Bind to this: 
    isPromo = false; 

    constructor(private route: ActivatedRoute) {} 

    ngOnInit() { 
     route.url.subscribe(segments => { 
      this.isPromo = segments[0].path === "promo"; 
     }); 
    } 

} 
Verwandte Themen