中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在angular2中使用NgModel模塊

發布時間:2021-03-17 17:14:46 來源:億速云 閱讀:183 作者:Leah 欄目:web開發

本篇文章為大家展示了怎么在angular2中使用NgModel模塊,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

angular2 NgModel 模塊

在Angular2中一個Module指的是使用@NgModule修飾的class。@NgModule利用一個元數據對象來告訴Angular如何去編譯和運行代碼。一個模塊內部可以包含組件、指令、管道,并且可以將它們的訪問權限聲明為公有,以使外部模塊的組件可以訪問和使用到它們。我們也可以通過定義子模塊來擴展我們應用的功能。

NgModule 的API

interface NgModule {
   // providers: 這個選項是一個數組,需要我們列出我們這個模塊的一些需要共用的服務
   //      然后我們就可以在這個模塊的各個組件中通過依賴注入使用了.
  providers : Provider[]
   // declarations: 數組類型的選項, 用來聲明屬于這個模塊的指令,管道等等.
   //        然后我們就可以在這個模塊中使用它們了.
  declarations : Array<Type<any>|any[]>
   // imports: 數組類型的選項,我們的模塊需要依賴的一些其他的模塊,這樣做的目的使我們這個模塊
   //     可以直接使用別的模塊提供的一些指令,組件等等.
  imports : Array<Type<any>|ModuleWithProviders|any[]>
   // exports: 數組類型的選項,我們這個模塊需要導出的一些組件,指令,模塊等;
   //     如果別的模塊導入了我們這個模塊,
   //     那么別的模塊就可以直接使用我們在這里導出的組件,指令模塊等.
  exports : Array<Type<any>|any[]>
  // entryComponents: 數組類型的選項,指定一系列的組件,這些組件將會在這個模塊定義的時候進行編譯
  //         Angular會為每一個組件創建一個ComponentFactory然后把它存儲在ComponentFactoryResolver
  entryComponents : Array<Type<any>|any[]>
  // bootstrap: 數組類型選項, 指定了這個模塊啟動的時候應該啟動的組件.當然這些組件會被自動的加入到entryComponents中去
  bootstrap : Array<Type<any>|any[]>
  // schemas: 不屬于Angular的組件或者指令的元素或者屬性都需要在這里進行聲明.
  schemas : Array<SchemaMetadata|any[]>
  // id: 字符串類型的選項,模塊的隱藏ID,它可以是一個名字或者一個路徑;用來在getModuleFactory區別模塊,如果這個屬性是undefined
  //   那么這個模塊將不會被注冊.
  id : string
 }

常用API簡介

NgModule的主要屬性如下:

  • declarations:模塊內部Components/Directives/Pipes的列表,聲明一下這個模塊內部成員,聲明之后才能使用對應的組件等。

  • providers:指定應用程序的根級別需要使用的service。(Angular2中沒有模塊級別的service,所有在NgModule中聲明的Provider都是注冊在根級別的Dependency Injector中)

  • imports:導入其他module,其它module暴露的出的Components、Directives、Pipes等可以在本module的組件中被使用。比如導入CommonModule后就可以使用NgIf、NgFor等指令。

  • exports:用來控制將哪些內部成員暴露給外部使用。導入一個module并不意味著會自動導入這個module內部導入的module所暴露出的公共成員。除非導入的這個module把它內部導入的module寫到exports中。

  • bootstrap:通常是app啟動的根組件,一般只有一個component。bootstrap中的組件會自動被放入到entryComponents中。

  • entryCompoenents: 不會再模板中被引用到的組件。這個屬性一般情況下只有ng自己使用,一般是bootstrap組件或者路由組件,ng會自動把bootstrap、路由組件放入其中。 除非不通過路由動態將component加入到dom中,否則不會用到這個屬性。

子模塊

隨著程序的壯大,單一的根模塊已不能清晰的劃分職責,這時候便可以引入Feature Module。Feature Module與根模塊的創建方式一樣,所有的模塊共享一個運行期上下文和依賴注入器。

功能模塊與根模塊的職責區別主要有以下兩點:

  • 根模塊的目的在于啟動app,功能模塊的目的在于擴展app

  • 功能模塊可以根據需要暴露或隱藏具體的實現

Angular2提供的另一個與模塊有關的技術就是延遲加載了。默認情況下Angular2將所有的代碼打包成一個文件,目的是為了提高應用的流暢性,但是如果是運行在mobile中的app,加載一個大文件可能會過慢,所以rc5提供了一種延遲加載方式。

import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

export const routes: Routes = [
 { path: '', redirectTo: 'contact', pathMatch: 'full'},
 { path: 'crisis', loadChildren: 'app/crisis/crisis.module#CrisisModule' }, // 可以延遲加載子模塊,子模塊的結構和父模塊一樣,它會去加載子模塊中的Routes配置,并跳轉對應的組件中去。
 { path: 'heroes', loadChildren: 'app/hero/hero.module#HeroModule' }
];

export const routing: ModuleWithProviders = RouterModule.forRoot(routes);

其中,path指明路徑,loadChildren指明使用延遲加載,'app/crisis/crisis.module#CrisisModule'指明了模塊的路徑,和模塊的名稱。

上述內容就是怎么在angular2中使用NgModel模塊,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

奈曼旗| 西青区| 旬阳县| 桦川县| 宁国市| 兴文县| 高淳县| 阳泉市| 行唐县| 砚山县| 绩溪县| 孟村| 阿鲁科尔沁旗| 阿拉善左旗| 双峰县| 新绛县| 兴山县| 尉犁县| 噶尔县| 南皮县| 高密市| 辽源市| 沿河| 科技| 万全县| 荥经县| 陆川县| 鄂托克前旗| 富顺县| 闻喜县| 隆安县| 微博| 井冈山市| 商洛市| 大连市| 潮州市| 潜山县| 武乡县| 彰化市| 阿克| 长海县|