无法使用来自 http get (Angular 4) 的数据填充 Chartist
Posted
技术标签:
【中文标题】无法使用来自 http get (Angular 4) 的数据填充 Chartist【英文标题】:Unable to populate Chartist with data from http get (Angular 4) 【发布时间】:2018-03-31 07:30:40 【问题描述】:我正在尝试通过 api 调用加载 chartist 数据,虽然数据已返回但未在 chartist 系列中加载。
// Initialize data series
seriesData: any[] = [];
// Function to retrieve data from api
getSeriesData()
this.uid.getSeriesData(this.auth.getCurrentUser()).then(
data => this.seriesData = data, // This is populated
err => console.log(err)
);
//ngInit
ngOnInit()
this.getSeriesData();
// Chartist
const dataDailySalesChart: any =
labels: ['M', 'T', 'W', 'T', 'F', 'S', 'S'],
series: [
this.seriesData // THIS IS ALWAYS EMPTY
]
;
【问题讨论】:
当然是空的,你在promise可能被解决之前构建图表数据。在回调中执行此操作,您确实拥有该数据。 @jonrsharpe,请您举个例子。我是新手。 How to return data from promise的可能重复 和其他各种。阅读 promises(或 observables,这是 Angular 原生使用的——如果你还不知道如何使用 promises,你不妨直接去使用 observables)。 【参考方案1】:您正在尝试在 promise 解决之前构建图表数据。由于 getSeriesData 是异步的,您应该这样做,
getSeriesData()
this.uid.getSeriesData(this.auth.getCurrentUser()).then(
data => this.seriesData = data, // This is populated
this.generateChart(this.seriesData),
err => console.log(err)
);
ngOnInit()
this.getSeriesData();
generateChart(chartData:any)
const dataDailySalesChart: any =
labels: ['M', 'T', 'W', 'T', 'F', 'S', 'S'],
series: [
chartData
]
;
;
【讨论】:
感谢您的及时回复。您的示例有效,但我仍然无法将 dataDailySalesChart 传递给此变量,因为它在 generateChart 中。 var dailySalesChart = new Chartist.Line('#dailySalesChart', dataDailySalesChart, optionsDailySalesChart); 你可以分配数据 你太棒了!太感谢了。 @jonrsharpe,感谢您的贡献。以上是关于无法使用来自 http get (Angular 4) 的数据填充 Chartist的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript - 我无法使用 Angular 2 使用 http get 调用我的 json
在 Angular 服务中 HTTP.get 之后从 firebase 返回的重复数组
无法使用 ngx translate/core - angular 2 typescript 获得文本的动态翻译
使用Angular 7获取“无法读取未定义的属性'http'”