我有一个value
代码,如下所示。
HTML
我有一个从中提取数据的API。
<div *ngIf="chart" class="col-xl-4 col-lg-6">
<div class="card cardColor mb-3">
<div class="card-header headColor">
<img class="img-fluid" src="../../../assets/images/chart-bars-box-16-white.png" />
<b>Issue Chart</b>
</div>
<div class="card-body">
<canvas id="canvas">{{ chart }}</canvas>
</div>
</div>
</div>
这是折线图的代码:
url = 'https://api.myjson.com/bins/1dnpid';
有一个用于管理数据的界面:
// line graph
this.httpClient.get(this.url).subscribe((res: Data[]) => {
res.forEach(y => {
this.year.push(y.year);
this.price.push(y.price);
});
this.chart = new Chart('canvas', {
type: 'line',
data: {
labels: this.year,
datasets: [
{
data: this.price,
borderColor: '#6ea204',
fill: false
}
]
},
options: {
legend: {
display: false
},
scales: {
xAxes: [{
display: true
}],
yAxes: [{
display: true
}],
}
}
});
});
每当我在浏览器中运行此代码时,都会在下面显示错误:
export interface Data { year: String; price: number; }
可能是什么问题?
答案 0 :(得分:2)
您收到此错误是因为对象本身没有foreach
方法,而数组却没有。
您的API返回带有results
键的对象,最有可能是您要迭代的数组。
我相信您想改用res.results.forEach
。
答案 1 :(得分:1)
就像@Félix所说的那样,对象本身没有foreach方法,但是如果对象是可迭代的或类似Array这样的对象,则可以对其进行迭代
Array.from(res).forEach