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模塊的目錄和目錄結構通常以下:函數