在Angular 6中,使用providedIn: 'root'的服务在组件中返回空对象的问题通常是因为服务的提供者没有正确配置。提供者的配置错误可能导致服务的实例化失败,导致返回一个空对象。
要解决这个问题,可以按照以下步骤进行操作:
步骤1:确保服务已经正确的添加到提供者列表中。
在服务的元数据(metadata)中,确保已经添加了@Injectable()装饰器,并将providedIn设置为'root'。例如:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class MyService {
constructor() { }
}
步骤2:检查模块的提供者列表。
确保在使用该服务的模块中,已经将服务添加到提供者列表中。例如:
import { NgModule } from '@angular/core';
import { MyService } from './my-service';
@NgModule({
...
providers: [MyService],
...
})
export class MyModule { }
步骤3:检查组件的依赖注入。
确保在使用服务的组件中,已经正确注入了该服务。例如:
import { Component } from '@angular/core';
import { MyService } from './my-service';
@Component({
...
})
export class MyComponent {
constructor(private myService: MyService) { }
}
通过按照上述步骤检查和配置服务的提供者,应该能够解决在Angular 6中使用providedIn: 'root'的服务返回空对象的问题。