У меня есть служба, выполняющая http.get
на Drupal API и извлекающая данные JSON.
Компонент, использующий эти данные JSON, продолжает генерировать следующую ошибку:
ERROR in src/app/form-test/form-test.component.ts(18,28): error TS2551: Property 'included' does not exist on type 'Question[]'. Did you mean 'includes'?
Из следующего кода:
constructor(private dataService: QuizService) { }
ngOnInit() {
this.dataService.fetch().subscribe(data => {
this.jsondata = data.included[0].attributes.field_json;
console.log(data, ': DATA');
});
}
Я не понимаю, почему существует проблема с JSON и почему он пытается найти включенные, а не включенные в структуру JSON. Ниже приведен скриншот образца JSON:
Я подтвердил структуру данных JSON (что подтверждается изображение выше), также из консоли, записывающей данные JSON и то, что URL API активен в тот момент, когда приложение Ay angular пытается вызвать его.
Может кто-нибудь посоветовать, что является причиной этой ошибки и как я могу решить это?
ОБНОВЛЕНИЕ:
quiz.service.ts :
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
export interface Question {
// title: string;
question: string;
included: any[];
}
@Injectable({
providedIn: 'root'
})
export class QuizService {
// tslint:disable-next-line: max-line-length
private quizURL: string = 'http://drupal-8-composer-drupal-test.com/jsonapi/node/quiz/31f020f7-34d9-4b9a-bd2b-0d567eb285dc/?include=field_questions&fields%5Bnode--quiz%5D=title,drupal_internal__nid,body&fields%5Bnode--question%5D=title,field_processed,body,field_options,field_json';
constructor(private httpClient: HttpClient) { }
fetch(): Observable<Question[]> {
return this.httpClient.get<Question[]>( this.quizURL );
}
}