繁体   English   中英

Angular:延迟加载子模块并将其主要组件注入到“父home”组件的“视图”中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM