dimple js如果在使用dimple.filterData()后没有返回数据怎么办?

时间:2014-08-26 15:57:43

标签: javascript jquery html d3.js dimple.js

我正在尝试使用dimple JS绘制图表。我需要在选择下拉列表时过滤数据。当我使用dimple.filterData(....)时没有返回数据时,我收到错误。如果dimple.filterData()函数没有返回数据,请告诉我如何处理这个问题。

我想在没有返回数据时显示“当前选择没有数据”。

JS Fiddle Link Here

<select id="Time">
<option value="">Please Select</option>
<option value="Year">YTD</option>
<option value="Month">MTD</option>
<option value="Week">WTD</option>

 

$( “#时间”)。在( '变更',函数(){

$("#chartContainer").html('');
drawChart($(this).prop('id'), $(this).val());

});

function drawChart(id,value){

var svg = dimple.newSvg("#chartContainer", 590, 400);
var data = [
    { Time: "Year", Value: 1 },
    { Time: "Month", Value: 2 },
    { Time: "Month", Value: 3 }
];
data = dimple.filterData(data, id, value);
var myChart = new dimple.chart(svg, data);

myChart.setBounds(60, 30, 510, 305)
var x = myChart.addCategoryAxis("x", "Time");
x.addOrderRule(["Year", "Month", "Week"]);
myChart.addMeasureAxis("y", "Value");
myChart.addSeries(null, dimple.plot.bar);
myChart.draw();

}

1 个答案:

答案 0 :(得分:2)

当没有匹配数据时,dimple.filterData(...)调用返回一个空数组。只需检查数组是否为空:

 data = dimple.filterData(data, id, value);
 if(data.length > 0) {
   // Charting code here...   
 } else { 
   alert("No data for the current selection");
 }