Angular:将一个服务注入到另一个服务中

问题描述

我的服务 1 依赖于其他服务 2。

Service2 在其构造函数中有一个参数。

像这样在service1的构造函数中声明service2时

constructor(private service : service2) {...}

我有以下错误:未提供 service1 的参数。

此处Angular 2: Inject Service to another service. (No provider error)解决方包括将 service2 放入 app.module 提供程序中,适用于我的组件,但不适用于 service1。我钢铁有错误:未提供“service2”的参数。

了解更多详情:

服务 2:

import { HttpClient,HttpHeaders } from '@angular/common/http';
import { BehaviorSubject,Observable } from 'rxjs';


@Injectable({
  providedIn: 'root'
})
export class ApiService {

  baseUrl = "http://127.0.0.1:8000";
  httpHeaders = new HttpHeaders({ 'Content-Type': 'application/json' })


  dataSource: BehaviorSubject<any> = new BehaviorSubject([]);
  list: Array<any> = [];

  constructor(private http: HttpClient) {
  }
...
}

服务 1:

import { Injectable } from '@angular/core';
import { Observable,Subject } from 'rxjs';
import { ApiService } from './api.service';

@Injectable({
  providedIn: 'root'
})

export class FlowsheetEditorService {

  //declarations ...

  // httpHeaders = new HttpHeaders({ 'Content-Type': 'application/json' })
  
  constructor(private api : ApiService) { ...}
}

在应用模块中:

提供者:[ApiService],

引导程序:[AppComponent]

你知道原因吗?你能帮忙吗?

我不知道这是否重要,但我将所有服务放在 /app 文件夹中的一个文件夹中。

谢谢

解决方法

您必须将服务注入服务然后注入客户并在服务内部使用另一个服务功能

,

问题是我在没有参数的情况下在我的项目中的某处初始化了服务:不应该这样做,因为 angular 初始化了服务