2017-07-16 4 views
2

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

Antwort

1

Sie sollten router data resolvers suchen. Ich schrieb über sie in einer question in Bezug auf etwas auf eine ionische Weise.

Dies sollte Ihnen eine Roadmap geben, wie Sie sie selbst implementieren können.

(Ionic verwendet Angular unter den Abdeckungen, aber nicht Router, sondern eine Navigationssteuerung - die gerade wieder etwas anderes geändert hat).

Wenn Sie weitere Informationen benötigen, habe ich gelernt, über diese Dinge in Angular Universität in ihren:

Insbesondere das Zeug zwischen den Kurs Themen abgedeckt wird

Das Quellmaterial ist auch auf Github. Sie müssen wissen, welche Zweige aus den Videos zur Kasse gehen und folgen Sie dem Code, den Sie benötigen.

+0

Danke dafür. Ich werde das Material durchgehen und eine spezifische Antwort veröffentlichen, sobald ich es herausgefunden habe – Nicholas

+0

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

+0

Ok groß, ich plane, das Diagramm in einem Dialogfeld zu haben, so sollte dies mit einem Ladeanzeige gut funktionieren – Nicholas

Verwandte Themen