Angular 6 默认路由未加载。我怎样才能解决这个问题?

yul*_*dev 5 angular-module angular angular-router angular6

我有一个 angular 6 项目,结构如下...

src
|- app
|  |- core
|  |  |- layout.component.ts/html/scss
|  |  |- core.module.ts
|  |- views
|  |  |- modules
|  |  |  |- sample
|  |  |  |  |- sample.component.ts/html/scss
|  |  |  |  |- sample-routing.module.ts
|  |  |  |  |- sample.module.ts
|- app.component.ts/html/scss
|- app-routing.module.ts
|- app.module.ts
Run Code Online (Sandbox Code Playgroud)

...示例模块的路由结构看起来像...

const routes: Routes = [
  {
    path: '',
    children: [
      {
        path: '',
        component: SampleComponent
      }
    ]
  }
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class SampleRoutingModule { }
Run Code Online (Sandbox Code Playgroud)

...和应用程序路由模块看起来像...

const routes: Routes = [
  {
    path: '',
    component: LayoutComponent,
    children: [
      {
        path: '',
        redirectTo: 'sample',
        pathMatch: 'full'
      },
      {
        path: 'sample',
        loadChildren: './views/sample/sample.module#SampleModule'
      }
    ]
  }
];
@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)

我注意到的行为是,当我为应用程序提供服务时,应该是的默认基本路由layout component不会加载。相反,我在控制台中得到一个没有错误的白屏。然后,如果我输入,http://localhost:4200/sample我会得到正确的行为。仍然没有发生初始重定向,它应该加载包含示例模块的布局组件。app.component.html<router-outlet></router-outlet>还有layout.component.html一直在寻找这个试图弄明白的时间超过我愿意承认。也许布局组件的位置比我想象的更重要所以它应该注册到应用程序模块?

小智 3

我在同一项目中的一个旧的不相关模块中RouterModule导入并routes定义了默认路由。就像是...

const routes = {
  {
     path: '',
     component: RandomComponent
  }
}
...
imports: [RouterModule.forChild(routes)]
...
Run Code Online (Sandbox Code Playgroud)

删除它修复了我试图实现的路由。Angular 肯定一直在尝试注册一些渴望的位置。说实话,感觉有点愚蠢。感谢那些回答的人!