2016-10-02 2 views
3
  • Funktionale Anforderungen an den primären Ausgang zu beeinflussen (weil die technische Frage keinen Sinn für das Publikum gemacht hat):

Ein Winkel 2 App selbst beim Start konfiguriert. Wenn keine Abfrageparameter vorhanden sind (z. B. Standardzustand), muss ein Standard-Home- und ein Standard-Formular angezeigt werden. Wenn stattdessen Abfrageparameter vorhanden sind, findet ein Anpassungsprozess statt. Der Anpassungsprozess zeigt im Grunde ein individuelles Zuhause und eine Form.Angular 2 - Navigation von aux Ausgang

  • Technische Voraussetzungen:

Die Plunker sind eine stark vereinfachte Version der tatsächlichen Funktionsanforderung (query Parameter weggelassen Parsen), die im Wesentlichen der Kopfkomponente schaltet. Der Aufruf sollte in der Hauptkomponente stattfinden, da die Parsing-Logik (nicht im Plunker enthalten) dort liegt.

this.route.queryParams.filter(qp => !_.isEmpty(qp)).subscribe(qp => this.parseParameters(qp)); 

Die router.navigate nicht die Navigation in dem genannten Auslass (Header) von AppComponent auszuführen. Der gleiche Code funktioniert in einer Subkomponente wenn verwendet (zB DefaultComponent)

Hier ist die plunkr (schauen Sie bitte auf den kommentierten Code)

DEMO: http://embed.plnkr.co/qyquCE4h5OX8sNLKM8lu/

einige Tracing Hinzufügen ich den Router fand heraus, storniert die Navigation:

  • Router Ereignis: NavigationStart
    • NavigationStart (ID: 1, url: '/ (header: head)')
  • Router Ereignis: NavigationStart
    • NavigationStart (ID: 2, url: '/')
  • Router Ereignis: NavigationCancel
    • NavigationCancel {id: 1, url: "/ (Header: head)" Grund: "Navigation ID 1 ist nicht gleich der aktuellen Navigations id 2"}

Frage:

Sind Auslass Bäume gegenseitig aus? Mit anderen Worten kann ich den Header-Ausgang wie folgt navigieren:

);

ohne die primäre Steckdose zu beeinflussen?

Antwort

0

Vielleicht habe ich was du willst.Wenn Sie Ihre Anwendung ausführen, möchten Sie headComponent in Ausgang namens und Standardkomponente in regelmäßigen Auslauf.
richtig ????

zu tun, dass Sie Ihre Routen zu folgen, ändern müssen

DEMO: https://plnkr.co/edit/lG66FIII9b9Xbi7YiHqc?p=preview

1)

const headerRoutes: Routes = [ 
    { path: '', component: DefaultComponent}, 
    { path: '', component: HeadComponent, outlet: headerOutlet} 
]; 

HINWEIS: Nun, nicht wahr erfordern unter Code,

ngOnInit() { 

    /* now not required */ 

    this.router.navigate(
    [{ 
     outlets: { 
     header: "head" 
     } 
    }] 
); 

} 

2) Dies löst auch Ihr zweites (2) Problem in Ihrer Frage erwähnt.

+0

Ich brauche eine Standard-Header-Komponente in benannten Steckdose. Zu einem späteren Zeitpunkt muss ich den Header programmgesteuert aktualisieren. Ich habe meinen Plunker aktualisiert, um das Problem zu zeigen (AppComponent.ngOnInit) – Ema

+0

Ich verstehe Ihre Anforderung nicht, sorry. Sobald App läuft, gibt es nichts zu tun in der späteren Phase, wie und was in späteren Phasen zu tun? Anforderung ist nicht klar. – micronyks

+0

vor allem, danke für die antwort. Zweitens habe ich die Antwort bearbeitet, um die Anforderungen zu berücksichtigen – Ema

Verwandte Themen