Ich habe eine eckige App, die lazy Modul lädt.Angular - Wie kann ich AUX-Route mit Lazy-Loaded-Modul aktivieren?
Zunächst wird die App zu home
navigiert wird, wo es das Modul lädt (benannt module1
):
Haupt-Routing:
const routes: Routes = [
{ path: "", redirectTo: "/home", pathMatch: "full" },
{ path: "home", loadChildren: "./module1/module1.module#Module1Module" },
];
Bei module1
- Routing-Tabelle gibt es auch:
const routes: Routes = [
{
path: "", component: Home1Component,
children: [
{ path: 'bird', outlet: 'under', component: Home2Component }
]
}
];
Also, da es lädt, wenn die App startet - es geht zu /home
wo es lädt es die Home1Component
Aber Home1Component
auch eine Schaltfläche in ihm hat die einen Wert an die Auslass-Route setzen annehmen.
home1.component.html:
<input value="click to activate aux route" type="button" (click)="go()"/>
<router-outlet ></router-outlet>
<router-outlet name='under'></router-outlet> //<---- I want to activate only this
Dies ist, wie ich versuche, den Ausgang Weg zu aktivieren:
public go() {
this.router.navigate([{ outlets: { under: ['bird'] } }], { relativeTo: this.route })
}
Aber ich einen Fehler:
Error: Cannot match any routes. URL Segment: 'home'
Frage:
Warum erhalte ich diesen Fehler und wie kann ich ihn beheben?
Ich glaube, dies ist ein Bug mit Winkeln verzögertes Laden aux Route. Ich hatte ein ähnliches Problem. Dies könnte helfen https://stackoverflow.com/questions/45394728/angular-2-lazily-loaded-routes-that-contain-aux-router-outlet/45400430#45400430 – jmw5598
@ jmw5598 Ich sehe Ihre Antwort, aber können Sie bitte anwenden das zu meinem Code? Weil ich nicht sehe, wie es funktioniert –
kann ich. Ich werde es anwenden, sobald ich in einen Computer einsteigen kann. Könnten ein paar Stunden sein. – jmw5598