2017-10-19 131 views
0

我试图通过api调用加载chartist数据,虽然数据已返回,但不在chartist系列中加载。无法使用来自http的数据填充Chartist(角4)

// 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 
     ] 
    }; 
} 
+0

当然它是空的,你之前建立的图表数据这个承诺可能已经解决了。在回调中进行,你确实有这些数据。 – jonrsharpe

+0

@jonrsharpe,请你帮助一个例子。我是新来的。 –

+0

[如何从promise返回数据]的可能重复(https://stackoverflow.com/questions/37533929/how-to-return-data-from-promise) – jonrsharpe

回答

1

你正在试图建立图表数据之前的承诺是resolved.Since 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 
     ] 
    }; 
}; 
+0

感谢您的及时回应。你的例子工作,但我仍然不能将dataDailySalesChart传递给这个变量,因为它在里面的generateChart。 var dailySalesChart = new Chartist.Line('#dailySalesChart',dataDailySalesChart,optionsDailySalesChart); –

+0

你可以分配数据 – Sajeetharan

+0

你太棒了!非常感谢。 @jonrsharpe,我感谢你的贡献。 –

相关问题