欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

angular2 NgModel模塊的具體使用方法

 更新時(shí)間:2019年04月10日 14:55:16   作者:前端Laoxu  
這篇文章主要介紹了angular2 NgModel模塊的具體使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

angular2 NgModel 模塊

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

NgModule 的API

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

常用API簡介

NgModule的主要屬性如下:

  • declarations:模塊內(nèi)部Components/Directives/Pipes的列表,聲明一下這個(gè)模塊內(nèi)部成員,聲明之后才能使用對(duì)應(yīng)的組件等。
  • providers:指定應(yīng)用程序的根級(jí)別需要使用的service。(Angular2中沒有模塊級(jí)別的service,所有在NgModule中聲明的Provider都是注冊在根級(jí)別的Dependency Injector中)
  • imports:導(dǎo)入其他module,其它module暴露的出的Components、Directives、Pipes等可以在本module的組件中被使用。比如導(dǎo)入CommonModule后就可以使用NgIf、NgFor等指令。
  • exports:用來控制將哪些內(nèi)部成員暴露給外部使用。導(dǎo)入一個(gè)module并不意味著會(huì)自動(dòng)導(dǎo)入這個(gè)module內(nèi)部導(dǎo)入的module所暴露出的公共成員。除非導(dǎo)入的這個(gè)module把它內(nèi)部導(dǎo)入的module寫到exports中。
  • bootstrap:通常是app啟動(dòng)的根組件,一般只有一個(gè)component。bootstrap中的組件會(huì)自動(dòng)被放入到entryComponents中。
  • entryCompoenents: 不會(huì)再模板中被引用到的組件。這個(gè)屬性一般情況下只有ng自己使用,一般是bootstrap組件或者路由組件,ng會(huì)自動(dòng)把bootstrap、路由組件放入其中。 除非不通過路由動(dòng)態(tài)將component加入到dom中,否則不會(huì)用到這個(gè)屬性。

子模塊

隨著程序的壯大,單一的根模塊已不能清晰的劃分職責(zé),這時(shí)候便可以引入Feature Module。Feature Module與根模塊的創(chuàng)建方式一樣,所有的模塊共享一個(gè)運(yùn)行期上下文和依賴注入器。

功能模塊與根模塊的職責(zé)區(qū)別主要有以下兩點(diǎn):

  • 根模塊的目的在于啟動(dòng)app,功能模塊的目的在于擴(kuò)展app
  • 功能模塊可以根據(jù)需要暴露或隱藏具體的實(shí)現(xiàn)

Angular2提供的另一個(gè)與模塊有關(guān)的技術(shù)就是延遲加載了。默認(rèn)情況下Angular2將所有的代碼打包成一個(gè)文件,目的是為了提高應(yīng)用的流暢性,但是如果是運(yùn)行在mobile中的app,加載一個(gè)大文件可能會(huì)過慢,所以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' }, // 可以延遲加載子模塊,子模塊的結(jié)構(gòu)和父模塊一樣,它會(huì)去加載子模塊中的Routes配置,并跳轉(zhuǎn)對(duì)應(yīng)的組件中去。
 { path: 'heroes', loadChildren: 'app/hero/hero.module#HeroModule' }
];

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

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

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何在Angular應(yīng)用中創(chuàng)建包含組件方法示例

    如何在Angular應(yīng)用中創(chuàng)建包含組件方法示例

    這篇文章主要給大家介紹了關(guān)于如何在Angular應(yīng)用中創(chuàng)建包含組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Angular具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Angular依賴注入系統(tǒng)里Injection token PLATFORM_ID使用場景詳解

    Angular依賴注入系統(tǒng)里Injection token PLATFORM_ID使用場景詳解

    這篇文章主要為大家介紹了Angular依賴注入系統(tǒng)里Injection token PLATFORM_ID使用場景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • AngularJS動(dòng)態(tài)生成div的ID源碼解析

    AngularJS動(dòng)態(tài)生成div的ID源碼解析

    這篇文章主要介紹了基于AngularJS動(dòng)態(tài)生成div的ID,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,對(duì)angularjs動(dòng)態(tài)生成div的id相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • 使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法

    使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法

    AngularJS是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。下面通過本文給大家分享使用AngularJS對(duì)表單提交內(nèi)容進(jìn)行驗(yàn)證的操作方法,需要的的朋友參考下吧
    2017-07-07
  • Angular路由ui-router配置詳解

    Angular路由ui-router配置詳解

    這篇文章主要介紹了Angular路由ui-router配置詳解,非常不錯(cuò),具有一定得參考借鑒價(jià)值,需要的朋友參考下吧
    2018-08-08
  • 深究AngularJS如何獲取input的焦點(diǎn)(自定義指令)

    深究AngularJS如何獲取input的焦點(diǎn)(自定義指令)

    本篇文章主要介紹了AngularJS如何獲取input的焦點(diǎn)(自定義指令),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • angularJS之$http:與服務(wù)器交互示例

    angularJS之$http:與服務(wù)器交互示例

    $http是angular中的一個(gè)核心服務(wù),本篇文章主要介紹了angularJS之$http:與服務(wù)器交互示例,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-03-03
  • 詳解angular筆記路由之a(chǎn)ngular-router

    詳解angular筆記路由之a(chǎn)ngular-router

    本篇文章主要介紹了詳解angular筆記路由之a(chǎn)ngular-router,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • angular2路由切換改變頁面title的示例代碼

    angular2路由切換改變頁面title的示例代碼

    本篇文章主要介紹了angular2路由切換改變頁面title的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Angular6封裝http請(qǐng)求的步驟詳解

    Angular6封裝http請(qǐng)求的步驟詳解

    最近抽空學(xué)習(xí)了一下Angular6,之前主要使用的是vue,所以免不了的也想對(duì)Angular6提供的工具進(jìn)行一些封裝,今天主要就跟大家講一下這個(gè)http模塊
    2018-08-08

最新評(píng)論