天天看點

Angular學習之NgModule

angular是子產品花的,NgModule就是用來聲明一個module。每一個module

每個 Angular 應用都至少有一個 NgModule 類,也就是根子產品,它習慣上命名為 AppModule,并位于一個名叫 app.module.ts 的檔案中。引導這個根子產品就可以啟動你的應用。

NgModule 是一個帶有 @NgModule 裝飾器的類。@NgModule 裝飾器是一個函數,它接受一個中繼資料對象,該對象的屬性用來描述這個子產品。其中最重要的屬性如下。

  • imports(導入表) —— 那些導出了本子產品中的元件模闆所需的類的其它子產品。
  • declarations(可聲明對象表) —— 那些屬于本 NgModule 的元件、指令、管道。
  • exports(導出表) —— 那些能在其它子產品的元件模闆中使用的可聲明對象的子集。
  • providers —— 本子產品向全局服務中貢獻的那些服務的建立器。 這些服務能被本應用中的任何部分使用。(你也可以在元件級别指定服務提供商,這通常是首選方式。)
  • bootstrap —— 應用的主視圖,稱為根元件。它是應用中所有其它視圖的宿主。隻有根子產品才應該設定這個 bootstrap 屬性。

NgModule 為其中的元件提供了一個編譯上下文環境。根子產品總會有一個根元件,并在引導期間建立它。 但是,任何子產品都能包含任意數量的其它元件,這些元件可以通過路由器加載,也可以通過模闆建立。那些屬于這個 NgModule 的元件會共享同一個編譯上下文環境。

開發過程中,通常有幾種情況需要單獨定義NgModule。

  1. 一個大的應用子產品通常可以拆分成多個更細小化、功能更純粹的N個字子產品。
  2. 某個應用中的一個功能元件,不隻為本應用使用,也被多個應用使用,應該将該功能單獨定義為一個NgModule。
  3. 将一些開發工具,輔助方法和系統層面統一的内容分類封裝為多個NgModule。