[英]Angular: Lazy load a child module and inject its main component in the View of the Parent home component
我有一个父模块,在这里我懒于加载子模块
如您所见,我没有直接导入我的子模块,但是我在路由文件下懒洋洋地加载了它:
父模块:
@NgModule({
imports: [
CommonModule,
ParentRoutingModule,
],
exports: [
ParentRoutingModule
],
declarations: [ParentComponent]
})
export class ParentModule { }
父路由模块:
const parentRoutes: Routes = [
{path: '', component: ParentHomeComponent},
{
path: '',
loadChildren: () => ChildModule,
canLoad: [ChildModuleGuard]
},
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(parentRoutes)
],
declarations: [],
exports: [
RouterModule
]
})
export class ParentRoutingModule { }
在我的主要ParentModule组件中; 在ParentHomeComponent我想注入我ChildHomeCOmponent认为,像这样的:
<p>
Parent-home works!
</p>
<app-Child-home></app-Child-home>
但这引发了一个错误,告诉您ChildHomeComponent不是ParentModule的一部分(因为我没有直接导入它);
如何处理?
我希望如果模块已加载 ,则我的孩子家庭组件会显示在父家庭组件下
建议??
这不是Angular中的延迟加载方式。
非延迟加载的模块无法访问延迟加载的模块中的组件。
这是应该延迟加载子模块的方式:
const parentRoutes: Routes = [
{path: '', component: ParentHomeComponent},
{
path: '',
loadChildren: 'path/ChildModule#ChildModule',
canLoad: [ChildModuleGuard]
},
];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.