Angular HttpClient фактически не конвертируется в объект - PullRequest
0 голосов
/ 24 мая 2018

У меня есть простой класс, определенный в Angular с некоторыми свойствами, и затем я получаю результаты с помощью Angular 4 HttpClient с типом get.

getQuestions(): Observable<EhsAssessmentQuestion[]> {
    this.http.get<EhsAssessmentQuestion[]>(....);
}

, а затем использую его так:

       this.ehsAssessmentService
             .getQuestions()
             .subscribe((data: EhsAssessmentQuestion[]) => {
                 if (data[0] instanceof EhsAssessmentQuestion) {
                     console.info("Yes!");
                 }

Я просто возвращаю объект javascript, а не мой класс EhsAssessmentQuestion.Что мне нужно сделать для того, чтобы он прошел как правильный тип?

1 Ответ

0 голосов
/ 24 мая 2018

Похоже, что вы получаете от наблюдаемой Observable<Response>, а не Observable<EhsAssessmentQuestion[]>.Вы должны обработать отображение самостоятельно:

 return this.http.get(url)
  .map(res => { 
    return res.json().results.map(item => { 
      return new EhsAssessmentQuestion( 
          item.firstProperty,
          item.secondProperty,
          ...
      );
    });
...