当使用ng2图表显示实时数据时,我遇到了一些问题,它总是随时显示0。我在下面粘贴了我的代码片段。有人可以帮我检查一下,然后告诉我哪里做错了吗?
temps: Array<number> = [];
public lineChartData: Array<any> = [[]];
custom: boolean = false;
report: boolean = false;
errMess: any;
keys: any[] = []
constructor(public dialog: MatDialog,
private dishService: DishService,){}
public lineChartLabels: Array<any> = ['January', 'February', 'March', 'April', 'May', 'June', 'July'];
public lineChartType: string = 'line';
ngOnInit() {
this.dishService.getTemp()
.subscribe(temps => {
for (let key in temps[0]) {
for (var _i = 0; _i < temps.length; _i++) {
this.keys.push(temps[_i][key]);
}
}
console.log(this.keys);
this.lineChartData.push(this.keys);
});
}
答案 0 :(得分:0)
这是ng2-charts的已知问题,您需要手动让角度知道您已更新数据,
在下面的行之后做这样的事情,
this.lineChartData.push(this.keys);
this.forceChartRefresh();
,功能如,
forceChartRefresh() {
setTimeout(() => {
this._chart.refresh();
}, 10);
}
你需要在组件内部有一个变量,
@ViewChild(BaseChartDirective) private _chart;
修改强>
要查看每5分钟更新的图表,您可以使用
this.interval = setInterval(() => {
callyour function();
}, 5000);