angular 4重定向到任何路由的未找到页面

时间:2018-12-18 17:32:48

标签: angular

嗨,我的应用程序中有以下路线:

const routes : Routes = [
  {path : '', redirectTo: '/login',pathMatch: 'full'},
  {path: 'system', loadChildren: './system/system.module#SystemModule'},
  {path:'**',component:NotFoundComponent}
];

@NgModule({
  imports:[RouterModule.forRoot(routes,{
    preloadingStrategy:PreloadAllModules
  })],
  exports:[RouterModule]
})

但是当我运行应用程序时,它会路由到未找到的页面组件。

如果我在系统路线上尝试这样做:

const routes : Routes = [
  {path:'',component:SystemComponent,canActivateChild:[AuthGuard],children:[
      {path:'bill',component:BillPageComponent},
      {path:'records',component:RecordsPageComponent},
      {path:'planning',component:PlanningPageComponent},
      {path:'history',component:HistoryPageComponent},
      {path:'history/:id',component:HistoryDetailsComponent}
    ]},
  {path:'**',component:NotFoundComponent}
];

@NgModule({
  imports:[
    RouterModule.forChild(routes)
  ],
  exports: [RouterModule]
})

它可以正常工作,但在顶层路线上则不能。 请告知。

2 个答案:

答案 0 :(得分:0)

您有

 {path : '', redirectTo: '/login',pathMatch: 'full'}

用于默认路由。但是,login路由未定义。这就是为什么您的应用程序被重定向到NotFound页面的原因

答案 1 :(得分:0)

也请在您的路线中添加/login。因为找不到登录路径。

const routes : Routes = [
  {path : '', redirectTo: '/login',pathMatch: 'full'},
  {path: 'login', loadChildren: './login/login.module#LoginModule'},
  {path: 'system', loadChildren: './system/system.module#SystemModule'},
  {path:'**',component:NotFoundComponent}
];