amCharts:如何正常管理dataLoader中的数据不足 [英] amCharts: How to gracefully manage lack of data from dataLoader

查看:88
本文介绍了amCharts:如何正常管理dataLoader中的数据不足的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用amCharts生成图形,并通过dataLoader功能提取数据.

I am using amCharts to generate graphs and such by pulling data via dataLoader capability.

我一直在思考如何妥善处理不时从API传递来的数据不足的问题,以便图形显示诸如无可用数据"之类的消息.

I have been mulling my brain as to how to gracefully handle lack of data that gets passed from API from time to time so that graph shows a message such as "No Data Available".

示例图表代码:

var chart = new AmCharts.AmSerialChart();

chart.dataLoader = { url: "/api/blobs"};
chart.categoryField = "site";
chart.type="serial";
chart.theme = "light";

var graph = new AmCharts.AmGraph();
graph.valueField = "visit";
graph.type = "column";
graph.fillAlphas = 1;
graph.lineAlpha = 0;

var valuesAxis = new AmCharts.ValueAxis();
valuesAxis.integersOnly = true;

graph.balloonText = "[[category]]: <b>Total: [[value]]</b>";
chart.depth3D = 45;
chart.angle = 45;
chart.addGraph(graph);
chart.addValueAxis(valuesAxis);

chart.write("blob_chart"); 

有人知道如何管理dataLoader是否返回null,是否可以在图表上写一个计划"No Data Available"?

Anyone have a clue how I can manage to check if dataLoader returns null and if so write a plan "No Data Available" on the chart instead?

推荐答案

您可以使用Data Loader的

You can use Data Loader's postProcess handler to check whether the data is empty, and then add relative label. postProcess is a custom function that the loaded data is passed into before passed to chart.

此时,您可以对其进行修改以及执行其他任何任务,例如添加无数据"标签.

At that point you can modify it as well as perform any other tasks based on it, such as adding "No data" label.

即:

chart.dataLoader = {
  url: "/api/blobs",
  postProcess: function(data, options) {
    if (data === null) {
      data = [];
      options.chart.addLabel("50%", "50%", "No Data Available");
    }
    return data;
  }
};

这篇关于amCharts:如何正常管理dataLoader中的数据不足的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆