[英]How to inject service into an another service with Angular 6/7 ? (providedIn: 'root') Service is always undefined
使用providedIn: "root"
注入另一個服務時,服務保持未定義
我試圖放入模塊和/或組件: providers: [service1, service2]
並刪除providedIn: "root"
,但它仍然無法正常工作。
@Injectable({
providedIn: 'root'
})
export class Service1 {
constructor() {}
}
@Injectable({
providedIn: 'root'
})
export class Service2 {
constructor(private service1: Service1) {
console.log(service1) // undefined
}
}
export class Component {
constructor(private service2: Service2) {}
}
服務 1 始終未定義
服務是在根目錄中提供的,它不“依賴”,因為它們都是在根目錄中“定義”的,因此沒有之前或之后。 Angular 只是首先創建要注入的服務,否則 Angulars DI 將不起作用。 它通常建議在根范圍內提供服務。 “您應該始終在根注入器中提供您的服務,除非您希望服務僅在消費者導入特定的 @NgModule 時才可用。” ( https:\/\/angular.io\/guide\/providers#provider-scope<\/a> )演示: https<\/a> :\/\/stackblitz.com\/edit\/angular-ivy-e4onjc?file=src\/app\/app.component.ts
"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.