我是Angular的新手,我遇到了问题。我想从弹簧启动后端获取数据到我的图表。我从我的Angular App发送了一个GET请求,尽管在控制台中看到它不是空的,但我收到空响应。你可以帮帮我吗?
我的角度服务
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]);
}
您应该在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 })
});
在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]);
}
});