类型 ModalBackdropComponent 是 2 个模块声明的一部分:MyModule 和 AppModule

Type ModalBackdropComponent is part of the declarations of 2 modules: MyModule and AppModule

环境:Angular 2 RC5,ng2-bootstrap.. 从 RC4 升级到 RC5

错误:

Uncaught EXCEPTION: Error in http://localhost:4200/app/forgot-username/forgot-username.component.html:39:60
ORIGINAL EXCEPTION: Type ModalBackdropComponent is part of the declarations of 2 modules: Myodule and AppModule!
ORIGINAL STACKTRACE:
Error: Type ModalBackdropComponent is part of the declarations of 2 modules: MyModule and AppModule!
    at new BaseException (http://localhost:4200/vendor/@angular/compiler/src/facade/exceptions.js:27:23)

这是我的模块

@NgModule({
  imports:      [   DynamicFormModule, routes ],
  declarations: [ MODAL_DIRECTIVES, ForgotUsernameComponent ],
  exports:      [ ],
  providers:    [BS_VIEW_PROVIDERS,  ]
})

应用模块

@NgModule({
    imports: [
        BrowserModule,
        // FormsModule,
        routing,
        HttpModule,
        ForgotUsernameModule
    ],
    declarations: [
        // AppComponent
    ],
    bootstrap: [ AppComponent]
})
export class AppModule {


}

如您所见,我没有在 AppModule 中声明任何 ng2-bootstrap 相关工件(ModalBackdropComponent 或任何其他工件)。所以我想弄清楚为什么 Angular 2 认为我已经声明了它们。我该如何解决这个问题?

您需要将 ModalBackdropComponent 移动到它自己的模块(或移动到共享组件和指令的另一个模块,并导入要使用共享组件的共享模块,而不是将组件直接导入多个模块。