作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 api 获取数据,然后使用 .map() 将其中一部分重新格式化为数组,我能够成功地做到这一点,但是当需要将它作为数据传递到 Chart JS 时,它确实起作用了。我能够传递一个普通的、硬编码的数组,但不能传递我自己的数据...
我尝试使用 Angular 指令 (NG2-Charts) 来帮助解决问题,但这也不起作用...
组件.ts: ...其他变量和东西在这里...
getStockData() {
this.stocksService.getStockData()
.subscribe(
(response) => {
for(var i = 0; i < response.length; i++) {
this.stockOpen.push(response[i]['open']);
}
console.log('after loop: ', this.stockOpen);
},
(error) => console.error(error)
);
console.log('real: ', this.stockOpen);
console.log('test: ', this.testData);
}
// Chart JS version
buildStockChart() {
var ctx = document.querySelector("#chart");
this.chart = new Chart(ctx, {
type: 'bar',
data: {
labels: [1,2,3,4,5],
datasets: [
{
data: this.stockOpen,
borderColor: "#3cba9f",
fill: false
}
]
},
options: {
legend: {
display: false
},
scales: {
xAxes: [{
display: true
}],
yAxes: [{
display: true
}],
}
}
});
}
// NG2-Charts version
public lineChartData:Array<any> = [
{data: this.testData},
];
public lineChartLabels:Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
public lineChartOptions:any = {
responsive: true
};
最佳答案
我在 Angular 图表 JS 上也有同样的问题,所以我强制使用另一个图表。我现在使用 Angular 2 图表 js。
我认为这里的问题是 API 获取数据的延迟,CHART 组件已经呈现在 html View 上,但 API 服务仍未获取数据。
尝试将此代码添加到您的代码块中。如果 API 服务数据可用,这将处理数据。()=>{this.buildStockChart();}
this.stocksService.getStockData()
.subscribe(
(response) => {
for(var i = 0; i < response.length; i++) {
this.stockOpen.push(response[i]['open']);
}
console.log('after loop: ', this.stockOpen);
},
()=>{
this.buildStockChart();
}
);
console.log('real: ', this.stockOpen);
console.log('test: ', this.testData);
}
此图表易于管理动态实例。
希望这张图表对你有用。
关于javascript - 将来自 API 的数据与 Chart JS 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51508665/
我是一名优秀的程序员,十分优秀!