Reputation:
I created a router with a parent route that contains an id and child routes. The problem is that when I want to navigate under my child routes with the tabs, I get an error :
Error: Cannot match any routes. URL Segment: 'tabs/user/1/overview'. Error: Cannot match any routes. URL Segment: 'tabs/user/1/overview'.
User router :
export const routes: Routes = [
{
path: 'user/:id',
component: UserdetailComponent,
resolve: {
test: dataResolver,
},
children: [
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
{ path: '', redirectTo: 'overview', pathMatch: 'full' },
{ path: 'overview', loadChildren: () =>
import('./overview-module/overview.module').then(
m => m.OverviewModule
)
},
{ path: 'contact', loadChildren: () =>
import('./contact-module/contact.module').then(
m => m.ContactModule
)
},
]}];
export const UserModule: ModuleWithProviders = RouterModule.forChild(
routes
);
Overview routing :
@NgModule({
declarations: [OverviewComponent],
imports: [
CoreModule,
RouterModule.forChild([
{
path: '',
component: OverviewComponent,
}
]),
],
exports: [OverviewComponent]
})
export class OverviewModule {}
and one button of my tabs :
<ion-button
size="small"
fill="clear"
color="text"
[routerLink]="[userId, 'overview']"
Is it because my child routes are attached to a module that has its own router? How can I solve my problem please?
EDIT : I have tried with a Component and by adding my :userId on each road, I can navigate on a road but I get stuck. I guess it goes into sub routing and can't find the other routes....
thanks
Upvotes: 2
Views: 317
Reputation: 44
I think you need to change your router link to
[routerLink]="['/tabs/user', userId, 'overview']"
we need to specify the parent path first and then we can add the children path. Let me know if it works.
Upvotes: 2