
父子組件共享同一個服務(wù),利用該服務(wù)實現(xiàn)雙向通信
第一步:定義服務(wù)
parentService.ts

1).這里用Injectable修飾這個類是一個服務(wù),在其他用到地方只需要注入使用
(2).我們還定義了一個name變量并且初始化值,和一個公共的方法getData
parent.module.ts

我們這里把剛才創(chuàng)建的parentService服務(wù)依賴加進(jìn)來,接著在provides中注冊這個parentService服務(wù),在ParentModule模塊中注冊之后,對于父組件和子組件來說都是指向同一個服務(wù)實例,而且這個服務(wù)的作用域只在當(dāng)前這個模塊中有效,這句話理解了,就等于理解了父子組件共享服務(wù)實現(xiàn)數(shù)據(jù)通信
在父組件中使用服務(wù)

parent.component.ts
導(dǎo)入parentService服務(wù),在構(gòu)造函數(shù)中聲明注入parentService服務(wù),因為我們在parentModule模塊中,已經(jīng)將parentService 通過provides注冊過,所以我們在組件中不需要進(jìn)行注冊,直接可以使用,你可以這樣理解,把當(dāng)它想象成在模塊的容器中已經(jīng)存在了,只需要從容器中拿出來使用。
(1).這里我們定義了一個OnClick()方法,當(dāng)頁面點(diǎn)擊事件觸發(fā),就會來調(diào)用parentService服務(wù)定義的方法getData()獲取返回值,彈出返回值。
對應(yīng)的父組件模版

在子組件中使用服務(wù)
因為共享的是同一個ParentService服務(wù)實例,所以我們在子組件中也可以調(diào)用個ParentService服務(wù)的方法,代碼同上面用一樣

childen.component.ts
這里同樣定義了一個方法,用于測試調(diào)用parentService服務(wù),代碼實現(xiàn)跟上面一樣,不在描述,

對應(yīng)的子組件模版
最終效果:

<完>
福利:如果你是喜歡看書的朋友,不妨點(diǎn)擊【有驚喜】這是我在亞馬遜買的電子書。都非常珍貴,希望你能喜歡
作者:小處成就大事
簡介:一個喜歡分享和學(xué)習(xí)的前端開發(fā)程序猿,平時喜歡看看書,游泳,爬山,戶外騎行等,期待與志同道合的你成為朋友,一起交流、一起進(jìn)步。
初衷:對我來說,寫文章是學(xué)習(xí)和記錄一些沒有精通和完全掌握的知識點(diǎn),其次才是分享知識。通過自己查找資料和經(jīng)驗心得整理出來,做到通俗易懂分享給需要的人,分享知識不是為了炫耀,也不是為了謀利,而是為了更多需要汲取知識的人,可以收獲知識,同時自己也可以從中收獲知識,堅持做知識分享真的很難,但是我會堅持下去····
博客:小處成就大事_新浪博客
如果有志同道合的朋友不妨加微信一起交流和學(xué)習(xí),期待你的到來
