объектом, получаю ошибку, что в вызываемом сервисе есть не инициализированные методы, например http.
Как решать такую проблему?
файл 1:
import { Injectable } from '@angular/core';
import { ContatsSyncService } from "./contacts.sync.service"; // другой сервис
@Injectable()
export class QueueService {
httpDictReq: any = {
ContatsSyncService: {
sync: this.contatsSyncService.sync,
},
};
constructor (private contatsSyncService: ContatsSyncService) {}
send() {
// не работает
// ERROR TypeError: Cannot read property 'get' of undefined(…)
this.httpDictReq['ContatsSyncService']['sync'](); // вызываю метод sync из другого сервиса
// работает
this.contatsSyncService.sync(); // вызываю метод sync из другого сервиса
}
}
Файл 2
import { Injectable } from "@angular/core";
import { Http } from "@angular/http";
import 'rxJs';
import { Observable } from 'rxjs/Observable'
@Injectable()
export class ContatsSyncService {
constructor(private http: Http) {}
sync(): Observable<any> {
return this.http.get(`некий_урл`);
}
}
попробуй httpClient вместо Http constructor(private http: Http) {}
Обсуждают сегодня