Angular 应用是模块化的, 而NgModule咱们能够把它当作一个容器,用于存放一些内聚的代码块,它接收一个元数据对象并经过该对象告诉 Angular 如何编译和运行模块代码。它标记出该模块拥有的组件、指令和管道, 并把它们的一部分公开出去,以便外部组件使用它们。 它能够向应用的依赖注入器中添加服务提供商。
每一个 Angular 应用都至少有一个 NgModule 类,也就是根模块,它习惯上命名为 AppModule,并位于一个名叫 app.module.ts 的文件中。引导这个根模块就能够启动你的应用。npm
NgModule 是一个带有 @NgModule() 装饰器的类。@NgModule() 装饰器是一个函数,它接受一个元数据对象,该对象的属性用来描述这个模块。其中最重要的属性以下。bootstrap
通俗一点讲即:app
如:ide
import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { NgModule } from '@angular/core'; import { HttpModule, Http } from '@angular/http'; import { RouterModule } from '@angular/router'; import { appRoutes } from './app.routes'; import { AppcontentModule } from './appcontent/appcontent.module'; import { AppComponent } from './app.component'; import { CommonService } from './shared/common.service'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, BrowserAnimationsModule, HttpModule, RouterModule.forRoot(appRoutes), AppcontentModule ], providers: [CommonService], bootstrap: [AppComponent] }) export class AppModule { }
咱们通常把自定义的其余模块叫特性模块。随着应用的扩大,全部的事情都在一个模块中完成不免会变乱,咱们就会想着把统分为多个模块,每一个模块都只作各自的事情而互不干扰,用根模块来引导程序并管理全部子模块即经过路由定向以及为它们提供全局配置与服务实例。
实现方式以下:模块化
Angular2模块的目录和目录结构通常以下:函数