這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎么在Angular4項(xiàng)目中對(duì)依賴(lài)進(jìn)行注入,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)公司專(zhuān)注于瑞安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供瑞安營(yíng)銷(xiāo)型網(wǎng)站建設(shè),瑞安網(wǎng)站制作、瑞安網(wǎng)頁(yè)設(shè)計(jì)、瑞安網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造瑞安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供瑞安網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
一、注入器
Angular中的注入器只有一種實(shí)現(xiàn)方法就是在構(gòu)造函數(shù)中聲明。
例如在一個(gè)組件中
constructor(productService: ProductService){}
通俗的講這段代碼的意思就是說(shuō),這個(gè)組件創(chuàng)建了一個(gè)productService,而這個(gè)productService是依賴(lài)ProductService的,這里的ProductService只是一個(gè)token,至于ProductService 是什么,是怎么實(shí)現(xiàn)的,全都是由提供器說(shuō)明的。
二、提供器
通常提供器定義在應(yīng)用級(jí),及app.module.ts中,供所有組件或服務(wù)使用,當(dāng)然也可以定義在某一個(gè)組件中,只供這一個(gè)組件使用。
我們以定義在應(yīng)用級(jí)為例:
@NgModule({ provides:[ProductService] })
這段代碼其實(shí)這一個(gè)簡(jiǎn)寫(xiě),全寫(xiě)為:
@NgModule({ provides:[{ provide: ProductService, useClass:ProductService }] })
這段代碼中的provide聲明的就是我們剛剛在注入器中提過(guò)的token,就是說(shuō)這兩個(gè)token是一一對(duì)應(yīng)的,Angular會(huì)到提供器中找到和注入器相同的token.
代碼中的useClass是實(shí)例化ProductService類(lèi),及我們幫助我們new 了一個(gè)類(lèi)出來(lái)。除了useClass外,比較常用的還用useFactory,使用工廠(chǎng)模式實(shí)例化一個(gè)類(lèi)。
這時(shí)候我們?cè)诮M件中就可以直接使用ProductService類(lèi)中的方法了。
當(dāng)token和想要實(shí)例化的類(lèi)名字相同時(shí),我們就可以使用上面那種簡(jiǎn)寫(xiě)的方法。
說(shuō)了這么多,那到底怎么才能體現(xiàn)出可復(fù)用性呢?
如果現(xiàn)在我們的product組件用到了另一個(gè)地方需要使用另一個(gè)服務(wù),我們命名為AnotherProductService。有了依賴(lài)注入我們就不必要更改組件,而是更改app.module.ts中的提供器:
@NgModule({ provide: ProductService, useClass: AnotherProductService })
從這段代碼可以看出,token并沒(méi)有改變,可是這是實(shí)例化的類(lèi)變?yōu)榱薃notherProductService。
總結(jié)來(lái)說(shuō),當(dāng)組件在構(gòu)造函數(shù)中說(shuō)明自己想要依賴(lài)一個(gè)類(lèi)時(shí),Angular首先會(huì)在這個(gè)組件自身找有沒(méi)有提供器,如果沒(méi)有就去這個(gè)組件的父組件中找,如果也沒(méi)有找到就去應(yīng)用級(jí)(app.module.ts)中找。找到后,就會(huì)按照提供器可說(shuō)明的為組件注入它想要的。
上述就是小編為大家分享的怎么在Angular4項(xiàng)目中對(duì)依賴(lài)進(jìn)行注入了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁(yè)名稱(chēng):怎么在Angular4項(xiàng)目中對(duì)依賴(lài)進(jìn)行注入
本文地址:http://chinadenli.net/article30/pigipo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、Google、App設(shè)計(jì)、品牌網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)