十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本篇文章為大家展示了怎么在angular2中使用NgModel模塊,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)服務(wù)項目包括武川網(wǎng)站建設(shè)、武川網(wǎng)站制作、武川網(wǎng)頁制作以及武川網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,武川網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到武川省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
angular2 NgModel 模塊
在Angular2中一個Module指的是使用@NgModule修飾的class。@NgModule利用一個元數(shù)據(jù)對象來告訴Angular如何去編譯和運行代碼。一個模塊內(nèi)部可以包含組件、指令、管道,并且可以將它們的訪問權(quán)限聲明為公有,以使外部模塊的組件可以訪問和使用到它們。我們也可以通過定義子模塊來擴(kuò)展我們應(yīng)用的功能。
NgModule 的API
interface NgModule {
// providers: 這個選項是一個數(shù)組,需要我們列出我們這個模塊的一些需要共用的服務(wù)
// 然后我們就可以在這個模塊的各個組件中通過依賴注入使用了.
providers : Provider[]
// declarations: 數(shù)組類型的選項, 用來聲明屬于這個模塊的指令,管道等等.
// 然后我們就可以在這個模塊中使用它們了.
declarations : Array|any[]>
// imports: 數(shù)組類型的選項,我們的模塊需要依賴的一些其他的模塊,這樣做的目的使我們這個模塊
// 可以直接使用別的模塊提供的一些指令,組件等等.
imports : Array|ModuleWithProviders|any[]>
// exports: 數(shù)組類型的選項,我們這個模塊需要導(dǎo)出的一些組件,指令,模塊等;
// 如果別的模塊導(dǎo)入了我們這個模塊,
// 那么別的模塊就可以直接使用我們在這里導(dǎo)出的組件,指令模塊等.
exports : Array|any[]>
// entryComponents: 數(shù)組類型的選項,指定一系列的組件,這些組件將會在這個模塊定義的時候進(jìn)行編譯
// Angular會為每一個組件創(chuàng)建一個ComponentFactory然后把它存儲在ComponentFactoryResolver
entryComponents : Array|any[]>
// bootstrap: 數(shù)組類型選項, 指定了這個模塊啟動的時候應(yīng)該啟動的組件.當(dāng)然這些組件會被自動的加入到entryComponents中去
bootstrap : Array|any[]>
// schemas: 不屬于Angular的組件或者指令的元素或者屬性都需要在這里進(jìn)行聲明.
schemas : Array
// id: 字符串類型的選項,模塊的隱藏ID,它可以是一個名字或者一個路徑;用來在getModuleFactory區(qū)別模塊,如果這個屬性是undefined
// 那么這個模塊將不會被注冊.
id : string
} 常用API簡介
NgModule的主要屬性如下:
declarations:模塊內(nèi)部Components/Directives/Pipes的列表,聲明一下這個模塊內(nèi)部成員,聲明之后才能使用對應(yīng)的組件等。
providers:指定應(yīng)用程序的根級別需要使用的service。(Angular2中沒有模塊級別的service,所有在NgModule中聲明的Provider都是注冊在根級別的Dependency Injector中)
imports:導(dǎo)入其他module,其它module暴露的出的Components、Directives、Pipes等可以在本module的組件中被使用。比如導(dǎo)入CommonModule后就可以使用NgIf、NgFor等指令。
exports:用來控制將哪些內(nèi)部成員暴露給外部使用。導(dǎo)入一個module并不意味著會自動導(dǎo)入這個module內(nèi)部導(dǎo)入的module所暴露出的公共成員。除非導(dǎo)入的這個module把它內(nèi)部導(dǎo)入的module寫到exports中。
bootstrap:通常是app啟動的根組件,一般只有一個component。bootstrap中的組件會自動被放入到entryComponents中。
entryCompoenents: 不會再模板中被引用到的組件。這個屬性一般情況下只有ng自己使用,一般是bootstrap組件或者路由組件,ng會自動把bootstrap、路由組件放入其中。 除非不通過路由動態(tài)將component加入到dom中,否則不會用到這個屬性。
子模塊
隨著程序的壯大,單一的根模塊已不能清晰的劃分職責(zé),這時候便可以引入Feature Module。Feature Module與根模塊的創(chuàng)建方式一樣,所有的模塊共享一個運行期上下文和依賴注入器。
功能模塊與根模塊的職責(zé)區(qū)別主要有以下兩點:
根模塊的目的在于啟動app,功能模塊的目的在于擴(kuò)展app
功能模塊可以根據(jù)需要暴露或隱藏具體的實現(xiàn)
Angular2提供的另一個與模塊有關(guān)的技術(shù)就是延遲加載了。默認(rèn)情況下Angular2將所有的代碼打包成一個文件,目的是為了提高應(yīng)用的流暢性,但是如果是運行在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' }, // 可以延遲加載子模塊,子模塊的結(jié)構(gòu)和父模塊一樣,它會去加載子模塊中的Routes配置,并跳轉(zhuǎn)對應(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)容就是怎么在angular2中使用NgModel模塊,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。