2016-12-02 2 views
0

Ich muss Diagramm erstellen, die onClick-Ereignis haben und Etikett, das geklickt wurde. Ich habe die Lösung gefunden und angepasst. Dies ist mein Code:

$scope.chart; 
$scope.onClick = function (points, evt) { 
    console.log(points, evt); 
    if ($scope.chart) { 
     console.log($scope.chart.getPointsAtEvent(evt)); 
    } 
}; 

und Sichtseite:

 <canvas class="chart chart-horizontal-bar" 
      chart-series="seriesPM" 
      chart-labels="labelsPM" 
      chart-data="dataPM" 
      chart-options="chartOptions" 
      chart-click="onClick" 
      id="chart" 
      ></canvas> 

Aber mein $ scope.chart ist nicht definiert, und ich weiß nicht, wie diese Variable zu erhalten.

+0

Ihr Code nie etwas .chart gleich setzt. Es wird immer undefiniert sein. Sie müssen diese .chart auf etwas setzen, wahrscheinlich mit einem Selektor. Was dieser Selektor wäre, hängt davon ab, was Sie verwenden. Wenn Sie JQuery verwenden, ist es sehr einfach (schauen Sie sich JQuery-Selektoren an), wenn Sie nur Angular (also JQLite) verwenden, dann müssen Sie das nachschlagen (hier ist ein Link) http://StackOverflow.com/ questions/23609171/how-to-get-element-by-classname-or-id –

+0

Ich habe ein Element ausgewählt, aber es hat keine getPointsAtEvent-Funktion;/ –

+0

Richtig, aber Sie müssten es so auswählen und/oder umbrechen dass das Ereignis verfügbar ist. Ich schaute dies über und es sollte alles haben, was Sie brauchen, um dies zu lösen. http://www.chartjs.org/docs/ –

Antwort

0
 console.log(points); 

statt

if ($scope.chart) { 
    console.log($scope.chart.getPointsAtEvent(evt)); 
} 

Es war so einfach;/