I got a routing for my user profiles in Angular4
/* Frame Default */
{
path: '', component: FrameDefaultComponent,
children: [
{path: 'home', component: SiteHomeComponent},
{path: 'home/:page', component: SiteHomeComponent},
{
path: 'user/:id', component: SiteUserProfileComponent,
children: [
{path: '', redirectTo: 'home', pathMatch: 'full'},
{path: 'home', component: SiteUserProfileHomeComponent},
{path: 'about', component: SiteUserProfileAboutComponent}
]
},
{
path: 'user/settings', component: SiteUserSettingsComponent,
children: [
{path: '', redirectTo: 'home', pathMatch: 'full'},
{path: 'home', component: SiteUserProfileHomeComponent},
{path: 'about', component: SiteUserProfileAboutComponent}
]
},
{path: 'demo', component: SiteDemoComponent}
]
},
The problem is that when i navigate to user/settings he try to open user/:id ... any idea how i can fix this problem?
Try to change the order of your routes like this
{
path: '', component: FrameDefaultComponent,
children: [
{path: 'home', component: SiteHomeComponent},
{path: 'home/:page', component: SiteHomeComponent},
{
path: 'user/settings', component: SiteUserSettingsComponent,
children: [
{path: '', redirectTo: 'home', pathMatch: 'full'},
{path: 'home', component: SiteUserProfileHomeComponent},
{path: 'about', component: SiteUserProfileAboutComponent}
]
},
{
path: 'user/:id', component: SiteUserProfileComponent,
children: [
{path: '', redirectTo: 'home', pathMatch: 'full'},
{path: 'home', component: SiteUserProfileHomeComponent},
{path: 'about', component: SiteUserProfileAboutComponent}
]
},
{path: 'demo', component: SiteDemoComponent}
]
},
来源:https://stackoverflow.com/questions/45842934/angular4-nested-route-with-params