2017-07-03 3 views
3

Ich habe eine seltsame Frage. Ich muss sekundäre Router-Outlets auf den Root-Routing-Elementen meiner Lazy-Loaded-Module einrichten, für die URL-Basen im App-Routing-Modul eingerichtet sind. Die Erklärung scheint ein bisschen schwer zu sein, aber ich werde versuchen, das zu erklären.Angular4 Router, Lazy geladene Modul Kind Routen, benannte Router Steckdosen

Meine App-Routing hat dieses

{ 
    path: 'management', 
    loadChildren: 'app/management-tool/management-tool.module#ManagementToolModule', 
    canActivate: [AuthGuardService] 
}, 

bedeutet dies, dass alle der Management-Tool Routen mit

/Management

nun in der Management-Modul beginnen soll ich den wesentlichen Inhalt haben müssen erscheinen in einem sekundären Router-outlet namens "managementtoolcontent". Dazu habe ich 2 Teststrecken eingerichtet, von denen eine für mich funktioniert.

Das Management-Tool-Routing ist wie folgt.

Wie Sie sehen können, die leere '' Route und 'Test' Route beide identische Kinder haben. Ich habe auch die Router-Steckdose eingerichtet.

<router-outlet name="managementtoolcontent"></router-outlet> 

Was scheint mein Offiziersproblem zu sein?

Ich brauche die „/ Management/Übersicht“ Route den managementToolMarketingComponent in meinem Sekundärauslass öffnen haben, doch ist dieser Router gibt mir einen nicht definierten Streckenfehler

[routerLink]="['/management', {outlets: {managementtoolcontent: ['overview']}}]" 

Doch diese funktioniert völlig in Ordnung

[routerLink]="['/management/test', {outlets: {managementtoolcontent: ['overview']}}]" 

Meine Frage wäre, warum muss ich ein zusätzliches URL-Segment ("/ test") in den Mix einfügen, so dass ich sekundäre Router-Ausgänge haben kann? Was in Götter Namen mache ich hier falsch?

+0

Ich habe das gleiche Problem und ich bin gespannt auf eine Lösung zu sehen. Es scheint mir, dass dies ein Problem beim Winkel-Routing ist. –

+0

gleich hier .. ich kämpfte damit stundenlang config up/down überall .. und nichts funktionierte, dann kam ich über diese Frage, sieht aus wie Fehler für mich. –

Antwort

2

Werden alle Lazy Loaded-Routen in der sekundären Steckdose angezeigt? Wenn ja, könnten Sie versuchen, die Steckdose zur Lazy Loaded Route-Konfiguration hinzuzufügen:

+0

Nicht alle Router-Ausgänge werden in diesem Kontext angezeigt, daher kann ich dies nicht als Antwort markieren. Ich kann Ihnen jedoch sagen, dass wir das Problem gelöst haben, indem wir in unserem Lazy-Loaded-Modul einen nicht benannten Child-Router Outlet () verwendet haben. Dies funktioniert natürlich nur, weil wir nur einen sekundären Router Outlet brauchten. Ich werde Ihnen jedoch einen Daumen hoch geben, weil Ihre Idee im Allgemeinen funktioniert und ein Schritt vorwärts ist, um Angular2 zu verstehen. –

Verwandte Themen