Reputation: 5235
I would navigate to children route in angular
Here's routes file
import { NgModule } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";
import { ModuleWithProviders } from "@angular/core";
import { AdministrationComponent } from "./administration.component";
import { UserDisplayComponent } from "./user-display/user-display.component";
import { ResulTabComponent } from "./result-tab/result-tab.component";
const routes: Routes = [
{
path: "",
component: AdministrationComponent,
pathMatch: "full",
children: [
{ path: "", component: ResulTabComponent, pathMatch: "full" },
{ path: "userdetails", component: UserDisplayComponent }
]
}
];
export const AdministrationRouting: ModuleWithProviders = RouterModule.forChild(
routes
);
{
}
Administration component is lazy loaded on route administration
When I click on a table row I would navigate to userdetails route so http://localhost:4200/administration/userdetails
selectedUserDetails(userDetails) {
this.router.navigate(["userdetails"]);
}
Actually I get this error
ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'userdetails'
Upvotes: 1
Views: 2288
Reputation: 256
Your AdministrationComponent and ResulTabComponent are being defined as the same path.
Upvotes: 0
Reputation: 8075
It seems you are missing the /administration
selectedUserDetails(userDetails) {
this.router.navigate(["/administration", "userdetails"]);
}
And the parent route must have the 'administration' in the path
const routes: Routes = [
{
path: "administration",
component: AdministrationComponent,
pathMatch: "full",
children: [
{ path: "", component: ResulTabComponent, pathMatch: "full" },
{ path: "userdetails", component: UserDisplayComponent }
]
}
];
Take a look at this post.
Upvotes: 1