更新時間:2021-11-23 來源:黑馬程序員 瀏覽量:
在AngularJS中,服務是一個可以在AngularJS應用中使用的函數(shù)或對象,是對公共功能代碼的抽取。例如,多個控制器中出現(xiàn)了相同的代碼,那么便可以把它提取出來,封裝成一個服務。
因為服務能夠達到代碼復用的目的,所以建議將控制器、指令中的業(yè)務邏輯都封裝到服務中去。服務的概念通常與依賴注入緊密相關,通過依賴注入的方式可以把服務注入模塊、控制器和其他服務中。依賴注入要求對象是單例的,所以服務通常都是單例的,并且在需要的時候才會被$injector實例化。
AngularJS提供了如下幾種創(chuàng)建服務的方式。
·使用provider()函數(shù)創(chuàng)建服務(提供者):使用一個具有$get()的構造函數(shù)定義服務,然后使用模塊的provider()函數(shù)進行登記,返回服務實例。
理解依賴注入需要注意幾個關鍵問題,具體如下。
·誰依賴于誰:用戶對象依賴于IoC容器。
·為什么需要依賴:用戶對象需要IoC容器來提供自己需要的外部資源。
·誰注入誰:IoC容器向用戶對象注入用戶對象所依賴的對象。
·注入了什么內容:注入用戶對象所需要的外部資源。
在依賴注入中,被注入的對象都是單例對象,創(chuàng)建一個對象后便可以在程序中一直使用它。