[英]Angular2 // Why is DependencyInjection with Generics only working in Components?
我有一個使用泛型的服務,我想注入這樣的另一個服務
export class RestoreService<T>
注入適用於這樣的組件
constructor(private restoreService: RestoreService<Hero>) {}
如果我嘗試將相同的服務注入非Component類,我會得到一個異常,說“無法解析OtherService的所有參數(?)。確保它們都有有效的類型或注釋。”
以下是基於angular.io的分層注入樣本的示例樣本http://plnkr.co/edit/wkj838xacI3cbOvz3qTs?p=preview
我還注意到,只有在創建一個實例時,使用不同的Ts注入RestoreService的多個實例。 所以我想知道是否使用泛型類是一種推薦的模式。
確保將所有依賴項注冊為提供程序。 添加例如RestoreService, OtherService
到提供者
bootstrap(HeroesListComponent, [HeroesService, RestoreService, OtherService])
修復錯誤。
我沒有完全調查您的示例,但您已將RestoreService
和OtherService
添加到providers:
在hero-editor.components.ts
,這使得它們在那里已知,但它不會使整個應用程序知道它們。
注意:如果您希望應用程序中只有一個服務實例(單例),只需將其添加到一個地方 - 通常是bootstrap(...)
。 如果您希望DI為每個組件創建新實例,請將其添加到組件提供程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.