C3 js,如何访问url调用中收到的json数据

时间:2017-07-31 06:12:15

标签: javascript json c3.js

以下是使用C3 js库生成条形图的代码

var chart = c3.generate({
    bindto: '#barchart',
    data: {
      url: './API/get_bar_chart_data.php',
      mimeType: 'json',
      type: 'bar',
      keys: {
             x: 'category', // it's possible to specify 'x' when category axis
             value: [ 'number']
            },
      onclick: function (d, i) { 

                              console.log(chart.categories()[d.index]); 

                              onclick_barchart();
                              }
      },
  bar: {
        width: {
            ratio: 0.5 // this makes bar width 50% of length between ticks
               }
       },    
    axis: {
        x: {
            type: 'category' // this needed to load string x value
        }
    }

});

在上面的代码中,我以json格式从URL获取数据。

现在点击我想把这个完整的json接收到onclick_barchart()函数。

1 个答案:

答案 0 :(得分:0)

C3.js转换以内部格式收到的数据,因此无法获得收到的数据。

IMO,有两种方法可以解决这个问题。

  • 如果您需要处理收到的数据,可能需要单独调用。不在C3.js的上下文中



// call api and assign the result in separate variable
var data = call_ajax("./API/get_bar_chart_data.php");
var chart = c3.generate({
      data: {
        columns: data
        onclick: function() {
          onclick_barchart(data);
        }
      },
      ...
    }




  • 或者,通过内部数据变量访问转换后的数据 在这种情况下,您需要根据需要处理格式。



var chart = c3.generate({
      data: {
        columns: data
        onclick: function() {
          // You can access in outside via 'chart.internal.data.targets'
          // They're same result from .data() API
          // https://naver.github.io/billboard.js/release/latest/doc/Chart.html#data
          onclick_barchart(this.data.targets);
        }
      },
      ...
    }