2017-01-08 6 views
0

私はAm-chartsで作業していましたが、各グラフをクリックしてその値をアラートに表示する機能をトリガーしたいと思います。私はどのグラフをクリックしているのかわかりません。クリックでその価値を得る方法を提案してください。 See JSFiddle hereAnalチャートを使用したクリック時のチャート

angular.module('amChartsDirectiveExample',['amChartsDirective']).controller('amChartsController', function ($scope) { 
    $scope.amChartOptions = { 
     data: [{ 
      year: 2005, 
      income: 23.5, 
      expenses: 18.1 
     }, { 
      year: 2006, 
      income: 26.2, 
      expenses: 22.8 
     }, { 
      year: 2007, 
      income: 30.1, 
      expenses: 23.9 
     }, { 
      year: 2008, 
      income: 29.5, 
      expenses: 25.1 
     }, { 
      year: 2009, 
      income: 24.6, 
      expenses: 25 
     }], 
     type: "serial", 
     theme: 'black', 
     categoryField: "year", 
     rotate: true, 
     pathToImages: 'https://cdnjs.cloudflare.com/ajax/libs/amcharts/3.13.0/images/', 
     legend: { 
      enabled: true 
     }, 
     chartScrollbar: { 
      enabled: true, 
     }, 
     categoryAxis: { 
      gridPosition: "start", 
      parseDates: false 
     }, 
     valueAxes: [{ 
      position: "top", 
      title: "Million USD" 
     }], 
     graphs: [{ 
      type: "column", 
      title: "Income", 
      valueField: "income", 
      fillAlphas: 1, 
     }] 
    } 

}); 

答えて

1

あなたの設定に次のリスナーを追加します。

listeners: [{ 
    event: "clickGraphItem", 
    method: function(e) { 

    console.log('Event object:', e); 
    console.log('Clicked item:', e.item); 
    console.log('Income:', e.item.dataContext.income); 
    } 
}] 

注意をあなたが角度(例えばスコープの変更)と相互作用イベントリスナの内側に何かをすれば、あなたは$scope.$apply()を呼び出す必要があることダイジェストループを手動でトリガーします。

デモ:http://jsfiddle.net/aggn062r/

+0

これは、棒グラフでうまく機能しています。なぜ私は積み重ねられたエリアチャートを申請することができません。私は以下のリンクのためにこのリスナーを実装していたが、イベントはトリガーされていないことを意味する。 http://jsfiddle.net/sqt2Lb8c/1/ – user3335796

+0

これは、エリアがグラフアイテムではないためです。箇条書きはグラフ項目です。ここの箇条書きをクリックしてみてください:http://jsfiddle.net/na2L5dc1/ – tasseKATT

+0

すごく感謝します。その働き。 :-) – user3335796

関連する問題