2017-02-10 10 views
1

を使用してシリーズをクリックすると、データセットからIDを取得します。この構造のデータセットを持つDimple.jsで作成された円グラフがあります。ディンプルJS

私は円グラフをうまく表示できます。

私が仕事に出られないものは、パイの部分をクリックして、その部分のIDを取得することです。このIDを持つ別のページにユーザーを移動するには、これが必要です。これはどのように可能ですか?

これは私のコードです。ここで

var svg = dimple.newSvg("#PieChart", "100%", "300px"); 
var data = [ 
    {"Id":1, "Value":10, "Text":"Apples"}, 
    {"Id":2, "Value":15, "Text":"Oranges"}, 
    {"Id":3, "Value":20, "Text":"Pears"}]; 
var myChart = new dimple.chart(svg, data); 
myChart.addMeasureAxis("p", "Value"); 
var mySeries = myChart.addSeries("Text", dimple.plot.pie); 
mySeries.addEventHandler("click", function (e) { 
    alert("I want the Id."); 
}); 
myChart.draw(); 

は、私は直接的な方法があるとは思わないFiddle

答えて

0

です。ここ は、私は、これはこれはテキストが一意であると仮定すると動作します

mySeries.addEventHandler("click", function (e) { 
     var key = d3.select(e.selectedShape[0][0]).data()[0].aggField 
[0];//get the text on which it is clicked 
    //find the text from the data array 
     var value = data.find(function(d){ return d.Text == key}); 
     //value has everything 
    alert("I got the Id " + value.Id); 
}); 

作業コードhere

+0

を通してあなたを得ることができるかもしれしようとしたものです。私のデータセットでは、それが当てはまるとは仮定できません。次に、次のコード行に問題が発生します。 'var mySeries = myChart.addSeries(" Text "、dimple.plot.pie);'これはTextで集計されます。私が提供しているデータセットは既に集約されているため、Dimpleは集約を行う必要はありません。この問題を回避する方法はありますか? –

+0

はい!これはあなたのテキストが一意であると仮定します。もしそれがユニークでないなら、ディンプルはそれを集約します。ディンプルにそれを止める旗があるかどうかわかりません:( – Cyril

+0

私はD3がこれと一緒に行く方法だと思います。 –

関連する問題