Пустой ответ в Angular 4 от Java-бэкэнда - PullRequest
0 голосов
/ 01 сентября 2018

Я новичок в Angular и у меня проблема. Я хочу получить данные для моего графика из моей весенней загрузки. Я отправляю запрос GET из моего приложения Angular, и я получаю пустой ответ, несмотря на то, что вижу в консоли, что он не пустой. Не могли бы вы помочь мне?

Мой угловой сервис

getChartData(): Observable<Array<ChartDataParameters>> {
  return this.http.get<Array<ChartDataParameters>> ('http://127.0.0.1:8080/currency/chartData');
}

и мой компонент, который использует этот метод

this.databaseService.getChartData().subscribe(d => {
  this.data_origin = d;
});

for (let i = 0; i < this.data_origin.length; i++) {
  this.data.push([this.data_origin[i].date, this.data_origin[i].prediction, this.data_origin[i].currency]);
}

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

ход loop внутри subscribe

this.databaseService.getChartData().subscribe(d => {
  for (let i = 0; i < d.length; i++) {
    this.data.push([d[i].date, d[i].prediction, d[i].currency]);
  }
});
0 голосов
/ 01 сентября 2018

Вы должны использовать свои данные внутри Subscription. Кроме того, вам не нужно создавать столько переменных для данных, которые вы пытаетесь использовать.

this.databaseService.getChartData().subscribe(d => {
  this.data_origin = d;
});

for (let i = 0; i < this.data_origin.length; i++) {
  this.data.push([this.data_origin[i].date, this.data_origin[i].prediction, this.data_origin[i].currency]);
}

должно быть

this.databaseService.getChartData().subscribe(d => {

  for (let i = 0; i < d.length; i++) {
    this.data.push([d[i].date, d[i].prediction, d[i].currency]);
  }

});

Кроме того, я думаю, что-то не так с тем, что ты здесь делаешь. Должны ли данные представлять собой массив объектов, каждый из которых содержит три ключа: date, prediction и currency?

Если это так, я думаю, вы можете сократить логику до следующего:

this.databaseService.getChartData().subscribe(d => {

  this.data = d.map(datum => { date: datum.date, prediction: datum.prediction, currency: datum.currency })

});
...