Angular 2 Bootstrap根级模块

时间:2017-02-21 03:05:25

标签: angular ng-bootstrap

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,如样式指南中所示。

谢谢!

1 个答案:

答案 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功能。