Angular 2 ng-bootstrap表示根模块需要在根imports
的{{1}}属性中注册:
NgModule
当遵循Angular 2 Styleguide时,在@NgModule({
declarations: [AppComponent, ...],
imports: [NgbModule.forRoot(), ...],
bootstrap: [AppComponent]
})
export class AppModule {}
或shared
模块中注册NgbModule会更有意义吗?如果是这样,如何为第三方模块执行core
,以便我可以用作导入其他功能模块的forRoot()
的一部分?它是否可以在SharedModule
中注册为提供者,但是对于第三方库(例如ng-bootstrap),单身是否是智能甚至可能的选择?
CoreModule
问题是,如果第三方模块将在应用程序的所有选定功能组件中重复使用,其目标是保持基本应用程序模块"清洁"通过使用CoreModule和SharedModule,如样式指南中所示。
谢谢!
答案 0 :(得分:0)
基于Angular2文档,我倾向于在sharedModule中添加ng-bootstrap:
SHAREDMODULE
它可能会重新导出其他小部件模块,例如CommonModule, FormsModule和模块以及您最广泛使用的UI控件。
来源: https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-module-recommendations
以下是我在其中一个应用中使用的共享模块示例...为简单起见而删除:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
// Third Party Modules
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
@NgModule({
imports: [
CommonModule,
FormsModule,
NgbModule.forRoot() // Required for bootstrap module
],
declarations: [],
exports: [
CommonModule,
FormsModule,
NgbModule
]
})
export class SharedModule {}
导入SharedModule的功能模块现在可以在其组件中使用ngb功能。