Ich versuche, Kinder-Router zu verwenden. Mein Haupt-Routing-Modul (im Root-Verzeichnis):angular2 Route für NotFound Seite
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { ProfileComponent } from './profile/profile.component';
import { NotFoundComponent } from './notfound/notfound.component';
import { LoggedInGuard } from './login-guard/login-guard.component';
const routes: Routes = [
{path: '', redirectTo: 'home', pathMatch: 'full'},
{path: 'home', component: HomeComponent, pathMatch: 'full'},
{path: 'profile', component: ProfileComponent, canActivate: [LoggedInGuard], canLoad: [LoggedInGuard]},
{path: '**', component: NotFoundComponent},
];
@NgModule({
imports: [ RouterModule.forRoot(routes) ],
exports: [ RouterModule ]
})
export class AppRoutingModule {}
und Kind-Routing-Modul (in Unterverzeichnis):
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { PPComponent } from './pp.component';
import { MembersComponent } from './members/members.component';
import { HistoryComponent } from './history/history.component';
@NgModule({
imports: [
RouterModule.forChild([
{
path: 'partner-program',
component: PPComponent,
children: [
{
path: '',
redirectTo: 'members',
pathMatch: 'full'
},
{
path: 'members',
component: MembersComponent,
},
{
path: 'history',
component: HistoryComponent,
},
]
},
])
],
exports: [
RouterModule
]
})
export class PPRoutingModule { }
Ich habe eine Frage zu dieser Strecke {path: '**', component: NotFoundComponent}
. Angular2 sieht diese Route vor allen Kinderrouten. Und als Ergebnis zeigt die URL 'http://localhost:3000/partner-program' nicht gefundene Komponente an. Wenn ich notFound Route entferne, funktioniert 'http://localhost:3000/partner-program' gut. Wie kann ich nonFound Route deklarieren und Angular2 im letzten Zug (nach Kinderrouten) überprüfen?
Günter Zöchbauer, meinst du etw so?
Ich denke, Ihre 'PPRoutingModule' Routen sind nicht richtig als Child-Routen konfiguriert. Eine untergeordnete Route muss ein Kind einer übergeordneten Route sein. ''http: // localhost: 3000/partner-program' 'kann nur dann übereinstimmen, wenn es sich um eine untergeordnete Route von' {path:' ', redirectTo:' home ', pathMatch:' full '}, '(leerer Pfad) aber handelt es ist nicht. –