angular4学习笔记:@NgModule

  

  @NgModule:负责管理依赖的最重要的一部分,通过@NgModule你可以把一些特定的功能,业务逻辑,程序或者其他的逻辑方法封装成一个模块集合。在这个模块(module)中包含所有的组件,服务,管道和指令,不需要在其他地方重复声明这些依赖。
@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
})

 

posted @ 2017-08-31 15:36  程序猿小范  阅读(576)  评论(0编辑  收藏  举报