簡體   English   中英

`providers: [ MyService ]` 是否與 `providers: [{ provide: MyComponent, useClass: MyComponent }]` 相同

[英]Is `providers: [ MyService ]` the same as `providers: [{ provide: MyComponent, useClass: MyComponent }]`

我正在閱讀關於 angular 2 修訂版 47 第 250 頁的ng-book ,其中有以下段落:

當我們像這樣將類本身放入提供者列表時:

 providers: [ MyService ]

這告訴 Angular 我們希望在注入 MyService 時提供 MyService 的單例實例。 由於這種模式非常常見,因此該類本身就是以下等效配置的速記符號:

 providers: [ { provide: MyComponent, useClass: MyComponent } ]

是不是打字錯誤,意思應該是:

providers: [
    { provide: MyService, useClass: MyService }
]

是的,是一樣的。 當類型傳遞給provideuseClass是一樣的,那么它相當於剛剛通過的type

只是一個提示。 提供一個組件( MyComponent )通常是沒有意義的。

這是錯字,因為您不能使用組件作為提供者,所以這里是官方文檔

Provider類和提供對象字面量我們這樣編寫了providers數組:

 providers: [Logger] 

這實際上是使用帶有兩個屬性的提供者對象文字進行的提供者注冊的簡寫形式:

 [{ provide: Logger, useClass: Logger }] 

第一個是令牌,它既是查找依賴項值又是注冊提供程序的鍵。

第二個是提供程序定義對象,我們可以將其視為創建依賴項值的方法。 創建依賴關系值的方法有很多...編寫配方的方法也很多

是的,兩者都是一樣的。 當你編寫 providers: [MyService] angular 將把它擴展為 [{ provide: MyService, useClass: MyService}] 其中第一個參數提供:MyService將作為依賴注入令牌工作,作為定位“MyService”的關鍵第二個參數useClass: MyService它將從現有的服務類 MyService 創建依賴項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM