Angular 无法加载子路由

Angular can't load child route

我会在 angular

中导航到儿童路线

这是路线文件

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

当我点击 table 行时,我会导航到 userdetails 路由,因此 http://localhost:4200/administration/userdetails

selectedUserDetails(userDetails) {
  this.router.navigate(["userdetails"]);
}

实际上我得到了这个错误

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'userdetails'

您似乎错过了 /administration

selectedUserDetails(userDetails) {
  this.router.navigate(["/administration", "userdetails"]);
}

并且父路由必须在路径中有'administration'

const routes: Routes = [
  {
    path: "administration",
    component: AdministrationComponent,
    pathMatch: "full",
    children: [
      { path: "", component: ResulTabComponent, pathMatch: "full" },
      { path: "userdetails", component: UserDisplayComponent }
    ]
  }
];

看看这个post

您的 AdministrationComponent 和 ResulTabComponent 被定义为同一路径。