Как получить данные из объекта, содержащего массив в Angular 7 - PullRequest
0 голосов
/ 08 ноября 2018

Я создал коллекцию в Firebase, и данные, возвращаемые из API, таковы:

documents: Array[2]{
    0: name: "randomString",
        {fields: 
            {name: aName, id: 1}
            },
    1: name: "randomString",
        {fields: 
            {name: aName2, id: 2}
           }
    }

В моем интерфейсе у меня есть массив объектов, и я просто хочу отобразить каждый из этих элементов массива тоже. Когда я пытаюсь присвоить ответ от API моему локальному массиву, я, очевидно, получаю ошибку, потому что он пытается отправить объект в массив, который не соответствует моей локальной модели данных:

getData() {
    this.dataService.getData()
      .subscribe( res => this.localArray = res; )
  }

данные-service.ts

getData(): Observable<any> {
    return this.http.get(this.url).pipe(map(res => res.documents));
  }

Как я могу аффективно отобразить это, используя Angular. Обратите внимание, что «Ответ» устарел. Спасибо

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

В вашем сервисе вы должны написать

return this.http.get(YOUR_API_URL).pipe(map(response => response.documents));

И тогда в вашем компоненте вы просто делаете следующее:

getData() {
  this.dataService.getData().subscribe(response => {
    this.localArray = res;
  });
}
0 голосов
/ 08 ноября 2018

Попробуйте использовать res.documents. массив находится на документах собственности в вашем ответе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...