在angular2中重用模块失败

在angular2中重用模块失败,angular,typescript,Angular,Typescript,我正在开发一个angular2网站,我有一个根模块和一个子模块,但是无论我在根模块中包含什么模块,我都必须重新包含在子模块中,因此不能真正重用 这是我的帽子 在应用程序模块中 @NgModule({ declarations: [ AppComponent, ComingSoonComponent, ], imports: [ BrowserModule, FormsModule, HttpModule,

我正在开发一个angular2网站,我有一个根模块和一个子模块,但是无论我在根模块中包含什么模块,我都必须重新包含在子模块中,因此不能真正重用

这是我的帽子

在应用程序模块中

@NgModule({
    declarations: [
       AppComponent,
       ComingSoonComponent,
     ],
   imports: [
      BrowserModule,
      FormsModule,
      HttpModule,
      AppRoutingModule,
      HomepageModule,  //included the homepage module
      OwlModule

   ],
 providers: [],
   bootstrap: [AppComponent]
  })
   export class AppModule { }
现在进入主页模块

@NgModule({
   imports: [
        CommonModule,
         OwlModule//already in the app module
    ],
    declarations: [HomepageComponent]
  })
 export class HomepageModule { }
owl模块被导入两次,这样它就可以工作了,但是如果我只在应用程序模块中导入,那么我会得到一个错误

 If 'owl-carousel' is an Angular component, then verify that it is part of this module.

在一个涉及多个模块的应用程序中,如果要复制导入,我可能会错过什么?从
AppModule
中删除它,然后将它添加到
HomepageModule的导入/导出数组中,这可能会变得很烦人:

主页模块:

    @NgModule({
       imports: [
            CommonModule,
            OwlModule
        ],
       exports: [
           OwlModule
        ],
        declarations: [HomepageComponent]
      })
     export class HomepageModule { }
应用模块:

@NgModule({
    declarations: [
       AppComponent,
       ComingSoonComponent,
     ],
   imports: [
      BrowserModule,
      FormsModule,
      HttpModule,
      AppRoutingModule,
      HomepageModule

   ],
 providers: [],
   bootstrap: [AppComponent]
  })
   export class AppModule {}

这是可行的,但假设你有5个以上的子级模块,考虑到应用程序模块是主模块(根模块),我必须将其作为导出添加到所有子级模块中module@GEOFFREYMWANGI在这种情况下,只需像您那样复制它们,因为复制模块是正常的,例如,包含指令
ngIf
ngFor
CommonModule
,将此模块包含在AppModule中并不意味着
ngIf
ngFor
在子级模块的其他组件中可用,您必须将其包含在子级模块中。这只是一个示例,当您在AppModule中包含导出CommonModule的BrowserModule,并且在子级别模块中再次包含CommonModule时,您已经在执行此模块复制。我同意,但您可以创建共享模块并添加其他模块使用的所有导出。然后,您只需在目标模块中导入共享模块,而不是将1导入无限模块