0
votes

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'

2

2 Answers

1
votes

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.

0
votes

Your AdministrationComponent and ResulTabComponent are being defined as the same path.