@NgModule({
/* providers: 这个选项是一个数组,须要咱们列出咱们这个模块的一些须要共用的服务,而后咱们就能够在这个模块的各个组件中经过依赖注入使用了. providers : Provider[] */ providers : Provider[], /* imports: 数组类型的选项,咱们的模块须要依赖的一些其余的模块,这样作的目的使咱们这个模块,能够直接使用别的模块提供的一些指令,组件等等. */ imports: [ BrowserModule ], /* declarations: 数组类型的选项, 用来声明属于这个模块的指令,管道等等,而后咱们就能够在这个模块中使用它们了. */ declarations: [ AppComponent ], /* bootstrap: 数组类型选项, 指定了这个模块启动的时候应该启动的组件.固然这些组件会被自动的加入到entryComponents中去 */ bootstrap: [ AppComponent ], /* exports: 数组类型的选项,咱们这个模块须要导出的一些组件,指令,模块等; 若是别的模块导入了咱们这个模块, 那么别的模块就能够直接使用咱们在这里导出的组件,指令模块等. */ exports : Array<Type<any>|any[]>, /* entryComponents: 数组类型的选项,指定一系列的组件,这些组件将会在这个模块定义的时候进行编译 // Angular会为每个组件建立一个ComponentFactory而后把它存储在ComponentFactoryResolver */ entryComponents : Array<Type<any>|any[]> /* schemas: 不属于Angular的组件或者指令的元素或者属性都须要在这里进行声明 */ schemas : Array<SchemaMetadata|any[]> /* id: 字符串类型的选项,模块的隐藏ID,它能够是一个名字或者一个路径;用来在getModuleFactory区别模块,若是这个属性是undefined , 那么这个模块将不会被注册 */ id : string })