我的应用程序有2个主要模块
-- app module
-- dashboard module //lazy loaded
app模块具有容器homeComponent
,该容器容纳navbarComponent
和heroComponent
我想将navbarComponent
导入到dashboard module
的子组件中,因此我将导航栏作为共享模块,导出了navbar
并在app.module和仪表板模块。
这是app.module路由的方式
const routes: Routes = [
{
path: '',
component: HomeComponent
},
{
path: 'tours',
loadChildren: './dashboard/dashboard.module#DashboardModule'
},
{
path: '**',
redirectTo: ''
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
这是用于延迟加载的模块
const routes: Routes = [
{
path: '',
component: DashboardComponent,
runGuardsAndResolvers: 'always',
resolve: {
tours: PreloadGuard
}
},
{
path: 'tourDetails',
component: DetailsComponent,
runGuardsAndResolvers: 'always',
resolve: {
selectedtour: DetailsGuard
}
},
{
path: '**',
redirectTo: ''
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
路由器出口在appComponent中,在路线”上,它可以很好地加载家庭中的导航栏。 但是一旦我导航到应该加载延迟加载模块的'/ tours',它就会记录一个错误,即HomeComponent不属于任何模块!!