angular – 从延迟加载的模块将组件导入另一个延迟加载的模块

我在Angular2官方网页上关注了Tour-of-Hero教程.但我通过引入模块延迟加载更进了一步.

我有以下功能模块:

>模块仪表板

>仪表板组件

>模块英雄

>英雄列表组件
>英雄细节组件
>英雄搜索组件
>英雄搜索服务
>英雄模特

hero-search组件是应该在Dashboard Module中使用的指令.

但是,根据this documentation关于Angular2架构,路由模块不应该被其他人导入.这意味着,我不应该将Hero模块导入仪表板模块.如果我这样做,我的路线无论如何都不再有效.

英雄搜索组件也使用英雄服务和英雄模型,因此它对英雄模块有很强的依赖性,因此很难外化.

那我该如何在Dashboard组件中使用hero-search组件呢?

最佳答案 您可以创建第三个模块,我们称之为UtilityModule,从那里导出HeroSearch,然后将UtilityModule导入DashboardModule和HeroModule.这样,您就可以在两个模块中使用HeroSearch组件.

@NgModule({
  imports: [ ... ],
  declarations: [ ... ],
  exports: [ HeroSearch ]
})

export class UtilityModule { }
点赞