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