Ich benutze angular2-highcharts, aber ich denke nicht, dass dieses Problem spezifisch ist.Wie benutze ich aktualisierte Daten in meinem Angular App-Diagramm, nachdem ich einen http-Aufruf gemacht und eine for-Schleife benutzt habe?
Das Problem, das ich habe, ist, dass das Diagramm mit einem leeren Array gerendert wird, bevor es mit den neuen Daten aktualisiert wird. Ich möchte schließlich ein click -Ereignis verwenden, um testArray mit dem API-Aufruf zu aktualisieren, und ein Dialogfeld starten, das eine Diagrammkomponente enthält, die diese Daten anzeigt. Also muss ich alles irgendwie synchron ablaufen lassen oder ein Observable verwenden, um auf die Daten zu warten?
Vorlage:
<chart type="StockChart" [options]="options"></chart>
Typoskript:
testArray = []
options: Object;
httpCall():Observable<any>{
return this._http.get(httpUrl, options)
.map((res:Response)=> res.json()
)};
updateArray(){
this.httpCall()
.subscribe(res =>{
for (let data of res.data){
this.testArray.push([
Date.parse(data['date']),
parseInt(data['value'])
])
}
})
};
// This is for chart:
makeGraph(){
this.options = {
series: [{
type: 'column',
data: this.testArray,
}]
}
}
Jede Hilfe
groß sein würde
Danke dafür. Ich werde das Material durchgehen und eine spezifische Antwort veröffentlichen, sobald ich es herausgefunden habe – Nicholas
Diese Art der Lösung verhindert die Anzeige der Seite, bis alle Daten zurückgegeben sind, die mit Ihrem Problem übereinstimmen. Sie können Dinge tun, wie zum Beispiel einen Seitenlade-Indikator auf der aktuellen Seite und einen Übergang, sobald die Daten "aufgelöst" sind. Wie ein Zahnrad animierte GIF ... – JGFMK
Ok groß, ich plane, das Diagramm in einem Dialogfeld zu haben, so sollte dies mit einem Ladeanzeige gut funktionieren – Nicholas