角2引导根级别模块
问题描述:
角2 ng-bootstrap指示根模块需要在根NgModule
的imports
属性登记:角2引导根级别模块
@NgModule({
declarations: [AppComponent, ...],
imports: [NgbModule.forRoot(), ...],
bootstrap: [AppComponent]
})
export class AppModule {}
继Angular 2 Styleguide当它会更有意义来注册shared
或core
模块中的NgbModule?如果是这样,那么如何执行此第三方模块的forRoot()
,以便我可以将其作为SharedModule
的一部分导入到其他功能模块中?它是否可以在CoreModule
中注册为提供商,但是对于第三方库(如ng-bootstrap),单身人士是否可以成为明智的选择?
@NgModule({
imports: [CommonModule, FormsModule, NgbModule],
declarations: [
FooComponent
],
providers: [FooService],
exports: [
CommonModule,
FormsModule,
FooComponent,
NgbModule
]
})
export class SharedModule {}
的问题是,应该在哪里第三方模块去,如果他们要始终与保持基本应用程序模块“干净”通过使用CoreModule的目标应用程序的选择功能部件被重新使用和样式指南中演示的SharedModule。
谢谢!
答
基于Angular2文档上,我会瘦朝着把东西像NG-引导在SharedModule:
SHAREDMODULE
可能转口其他部件模块,如CommonModule, FormsModule和使用最广泛的UI控件的模块。
来源:https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-module-recommendations
下面是一个例子共享模块,我在我的应用程序之一使用...剥离下来为简单起见:该导入SharedModule
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 {}
功能模块可以现在在他们的组件中使用ngb功能。
看来,调用forRoot()不是NG团队推荐的。来自文档: '只能在根应用程序模块AppModule中调用并导入.forRoot结果。将它导入到任何其他模块中,特别是在延迟加载的模块中,与其意图相反,并且可能会产生运行时错误。来源[https://angular.io/docs/ts/latest/cookbook/ngmodule-faq的.html] –