From 5af04cb857c3b853f2987312ac83c77151d2f068 Mon Sep 17 00:00:00 2001 From: Robin Hu Date: Sat, 3 Aug 2013 23:11:46 -0400 Subject: [PATCH] Fixing NVD3 issue #98, 'Object # has no method 'map' on pieChart'. Updating pieChart examples, so that [testData] becomes testData (no extra array brackets needed). Also adding pieChart test page. --- examples/pieChart.html | 4 +- src/models/pieChart.js | 18 +++--- test/pieChartTest.html | 121 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 11 deletions(-) create mode 100644 test/pieChartTest.html diff --git a/examples/pieChart.html b/examples/pieChart.html index 11e77cb..f5b69de 100644 --- a/examples/pieChart.html +++ b/examples/pieChart.html @@ -78,7 +78,7 @@ nv.addGraph(function() { .height(height); d3.select("#test1") - .datum([testdata]) + .datum(testdata) .transition().duration(1200) .attr('width', width) .attr('height', height) @@ -113,7 +113,7 @@ nv.addGraph(function() { d3.select("#test2") //.datum(historicalBarChart) - .datum([testdata]) + .datum(testdata) .transition().duration(1200) .attr('width', width) .attr('height', height) diff --git a/src/models/pieChart.js b/src/models/pieChart.js index e0e0b0b..977e5b1 100644 --- a/src/models/pieChart.js +++ b/src/models/pieChart.js @@ -58,7 +58,7 @@ nv.models.pieChart = function() { chart.container = this; //set state.disabled - state.disabled = data[0].map(function(d) { return !!d.disabled }); + state.disabled = data.map(function(d) { return !!d.disabled }); if (!defaultState) { var key; @@ -74,7 +74,7 @@ nv.models.pieChart = function() { //------------------------------------------------------------ // Display No Data message if there's nothing to show. - if (!data[0] || !data[0].length) { + if (!data || !data.length) { var noDataText = container.selectAll('.nv-noData').data([noData]); noDataText.enter().append('text') @@ -117,7 +117,7 @@ nv.models.pieChart = function() { .key(pie.x()); wrap.select('.nv-legendWrap') - .datum(pie.values()(data[0])) + .datum(pie.values()(data)) .call(legend); if ( margin.top != legend.height()) { @@ -145,7 +145,7 @@ nv.models.pieChart = function() { var pieWrap = g.select('.nv-pieWrap') - .datum(data); + .datum([data]); d3.transition(pieWrap).call(pie); @@ -159,15 +159,15 @@ nv.models.pieChart = function() { legend.dispatch.on('legendClick', function(d) { d.disabled = !d.disabled; - if (!pie.values()(data[0]).filter(function(d) { return !d.disabled }).length) { - pie.values()(data[0]).map(function(d) { + if (!pie.values()(data).filter(function(d) { return !d.disabled }).length) { + pie.values()(data).map(function(d) { d.disabled = false; wrap.selectAll('.nv-series').classed('disabled', false); return d; }); } - state.disabled = data[0].map(function(d) { return !!d.disabled }); + state.disabled = data.map(function(d) { return !!d.disabled }); dispatch.stateChange(state); chart.update(); @@ -175,7 +175,7 @@ nv.models.pieChart = function() { legend.dispatch.on('legendDblclick', function(d) { //Double clicking should always enable current series, and disabled all others. - var pieData = pie.values()(data[0]); + var pieData = pie.values()(data); pieData.forEach(function(d) { d.disabled = true; }); @@ -194,7 +194,7 @@ nv.models.pieChart = function() { dispatch.on('changeState', function(e) { if (typeof e.disabled !== 'undefined') { - data[0].forEach(function(series,i) { + data.forEach(function(series,i) { series.disabled = e.disabled[i]; }); diff --git a/test/pieChartTest.html b/test/pieChartTest.html new file mode 100644 index 0000000..b77f004 --- /dev/null +++ b/test/pieChartTest.html @@ -0,0 +1,121 @@ + + + + + + + +
+

Standard Pie Chart

+ +
+ +
+

Donut pie chart

+ +
+ + + + + + + + +