Как ввести зависимость в пользовательский класс Angular? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть Angular сервис:

@Injectable({
    providedIn: 'root',
})
export class Services {
     public service1 = new Service1();
}

Где класс Service1 это:

export class Service1 {
    public http: HttpRequests;
    public repositoryModel: RepositoryModel;

    constructor() {
        this.repositoryModel = new RepositoryModel();
        this.http = new HttpRequests(this.repositoryModel);
    }
}

А класс HttpRequests это:

export class HttpRequests {
    constructor(private httpClient: HttpClient, private repository: RepositoryModel) {
}

Проблема в том, что HttpRequest зависит от private httpClient: HttpClient, поэтому мне нужно передать экземпляр выше в строке:

this.http = new HttpRequests(<here>, this.repositoryModel);

Как это сделать?

Я не хочу отбрасывать зависимость httpClient с начала верхнего уровня из export class Services {}

1 Ответ

1 голос
/ 26 мая 2020

импортируйте HttpClientModule в свой модуль в массиве импорта.

Затем измените свой сервис на: -

export class Service1 {
    public http: HttpRequests;
    public repositoryModel: RepositoryModel;

    constructor(private httpClient?: HttpClient) {
        this.repositoryModel = new RepositoryModel();
        this.http = new HttpRequests(this.httpClient, this.repositoryModel);
    }
}
...