2017-05-19 4 views
0

Ich erzeuge Diagramm mit c3. Ich greife auf die Rest-API im c3-Diagramm zu, um die JSON-Daten zu laden. Ich verwies dieses Beispiel http://c3js.org/samples/data_load.html Ich versuche, das Diagramm dynamisch mit Ladefunktion zu laden, die michC3.js - this.chart.load ist keine Funktion - Winkel 2 und Typoskript

this.chart.load

Runtime Error gibt keine Funktion

private chart: any; 
this.chart = c3.generate({ 
    data: { 
     url: '/api/systemvalues', 
     type: 'line' 
    } 
}); 
setTimeout(function() { 
    this.chart.load({ 
     url: '/api/systemvalues' 
    }); 
}, 1000); 

Dies sind die Versionen verwendet:

@angular/core": "2.4.10", 
"c3": "^0.4.11", 
"d3": "^3.5.17", 
"typescript": "2.2.2" 

Antwort

2

Aufruf der setTimeout mit ()=> statt function(){

private chart: any; 
this.chart = c3.generate({ 
    data: { 
     url: '/api/systemvalues', 
     type: 'line' 
    } 
}); 
setTimeout(()=>{ 
    this.chart.load({ 
     url: '/api/systemvalues' 
    }); 
}, 1000); 

OR

assign this variabel und verwenden diese Variable in einem Konstruktor und rufen die Funktion setTimeout

private chart: any; 
this.chart = c3.generate({ 
    data: { 
     url: '/api/systemvalues', 
     type: 'line' 
    } 
}); 
constructor(){ 
    var vm = this; 

    setTimeout(function() { 
    vm.chart.load({ 
     url: '/api/systemvalues' 
    }); 
    }, 1000); 
} 
+0

Dank lot..It gearbeitet. Jetzt bin ich nicht, dass Fehler immer – Mythri

+0

Diese Lösung hat nicht funktioniert 'setTimeout (() => { this.chart.load ({ url: '/ api/systemvalues' }); }, 1000);' – Mythri

+0

was ist mit dem anderen –

Verwandte Themen