在開發中,元件一般用來寫檢視有關的功能,
服務則寫一些其他的邏輯,諸如從伺服器獲取資料、驗證使用者輸入或直接往控制台中寫日誌等工作.
providers(提供商): provider通常就是自己寫的服務類.
injector(注入器):就是字面上的意思,將某一類事物注入到另一類事物中的工具.angular應用在啟動時,會自動建立.
angular中有很多方式可以將providers註冊到injector:
@injectable 裝飾器
在服務類的 @injectable 裝飾器中
//service
@injectable()
providedin: 『root』 告訴 angular在根注入器中註冊這個圖紙.root 還可以是某乙個具體的模組名.
這種方式註冊,在**編譯打包時,可以執行搖樹優化,這會移除所有沒在應用中使用過的服務。搖樹優化會使打包體積更小。
@ngmodule 中的 providers
在模組的 @ngmodule 中
//service
@injectable()
//module
@ngmodule()
這種方式註冊,可以對圖紙進行一些額外的配置.
note:在@ngmodule中註冊的服務,在圖紙中也需要寫@injectable()裝飾器
在元件中註冊
在元件的 @component 中
@component(]**
也可以使用usevalue屬性直接交付乙個物件例項**,**
Angular6的服務和依賴注入
angular 把元件和服務區分開,以提高模組性和復用性。angular 不會強制遵循這些原則。它只會通過依賴注入讓你能更容易地將應用邏輯分解為服務,並讓這些服務可用於各個元件中。在angular中使用服務,首先根據需要的功能,寫乙個服務類 angular中稱為provider 然後將該服務類註冊到...
angular6 依賴注入 學習筆記
檔案目錄 得到的頁面 二.使用工廠和值提供器 把product2.component.ts中的provider屬性去掉 import from angular core import from share product.service import from share anotherproduc...
angular6自定義服務service
angular6.x server ng g service storageserviceservice 是乙個單例,如果放在根路由下,就是在所有的元件都是共享的,因此可以利用service來傳遞和共享資料。import from angular core injectable export cla...