2017-03-14 3 views
0

Ich bin neu bei eckigen 2 also bitte verzeihen Sie mir, Wie zeige ich Header nur, wenn Seite nicht: "nach Hause oder Login oder Route registrieren".Angular 2 show header nur auf Seite

<header><header> 
<router-outlet></router-outlet> 
<footer></footer> 

Ich dachte, ich würde versuchen, den Namen der Route zu bekommen und verwenden und wenn Aussage aber nicht zeigen, wie. Bitte helfen

+0

können Sie einen [Service] erstellen (https://angular.io /docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service), die einen booleschen Wert festlegen. Die Komponente, die den Header verwendet, wird dem Service untergeordnet und die Vorlage sieht etwa folgendermaßen aus:

'. – mickdev

+0

Pls können Sie mir einen Beispielcode zeigen – Didi

+0

Haben Sie den von mir bereitgestellten Link verwendet? Sie haben sogar ein Live-Beispiel: https://angular.io/resources/live-examples/cb-component-communication/ts/eplnrx.html – mickdev

Antwort

0

app.component.ts

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

export class AppComponent implements OnInit { 
showHeader: boolean = true; 
constructor(private router: Router) {} 

ngOnInit() { 
    // listenging to routing navigation event 
    this.router.events.subscribe(event => this.modifyHeader(event)); 
} 

modifyHeader(location) { 
    if (location.url != "/home" && location.url != "/login" && location.url != "/register" && location.url != '/') 
    { 
     this.showHeader = false; 
    } else { 
     this.showHeader = true; 
    } 
} 
} 

in app.component.html

<header *ngIf="showHeader"><header> 
    <router-outlet></router-outlet> 
    <footer></footer> 

https://plnkr.co/edit/jUIVOfNDVVCyw2gk1Ara?p=preview

+0

danke baha, aber ist das app.components.ts ?? – Didi

+0

Die Komponente, wo die Header-Komponente verwendet wurde –

+0

Ich versuchte dies, es lädt nur Header und nichts anderes und jede Seite, die ich navigieren, führt zurück zum Stammverzeichnis. – Didi