无法根据功能获取amChart

时间:2016-04-20 08:56:04

标签: javascript

有一段时间我现在试图根据我所做的javascript函数填写一个amChart。我想要的是设置许多不会改变的图表属性作为变量,我可以在许多制作或填充图表的函数中使用它。我的代码是:

var chartProperties = {
    "theme": "light",
    "type": "serial",
    "startDuration": 1,
    "dataProvider": [],
    "rotate": false,
    "categoryField": "organisatie",
      "valueAxes": [ {
        "gridColor": "#FFFFF",
        "minimum": 0,
        "gridAlpha": 0.2,
        "dashLength": 0
      } ],
      "gridAboveGraphs": true,
      "startDuration": 1,
      "graphs": [ {
        "balloonText": "[[category]]: <b>[[value]]</b>",
        "fillColorsField": "fillcolor", //Dit veld heb ik meegegeven vanuit SQL functie en bevat de HEX kleurcodes BD
        "fillAlphas": 0.8,
        "lineAlpha": 0.2,
        "type": "column",
        "valueField": "score"
      } ],
      "chartCursor": {
        "categoryBalloonEnabled": false,
        "cursorAlpha": 0,
        "zoomable": false
      },
      "categoryAxis": {
        "gridPosition": "start",
        "gridAlpha": 0,
        "tickPosition": "start",
        "tickLength": 20
      },
      "export": {
        "enabled": true
      }

};

var chart = AmCharts.makeChart("chartaveragescore", chartProperties);
var organization = $("#organization").val();
var indicator = $("#indicators").val();
var funcid = "fill_chart_average_score";

var dataChart = $.getJSON('functions/getfunctions.php', {
    "organization":organization,
    "indicator":indicator,
    "funcid":funcid});

function updateOrganizationAverageScore() {

    chart.dataProvider =  dataChart;
    chart.validateData();

}

我不明白我做错了什么。我可以将$ .getJSON设置为变量吗?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我自己已经解决了。我在Stack上看到了这一点,发现我无法使用var =直接设置$.getJSON,然后再使用它,因为我错过了回调。

我现在可以使用的代码是:

function updateOrganizationAverageScore() {

    var organization = $("#organization").val();
    var indicator = $("#indicators").val();
    var funcid = "fill_chart_average_score";

    //console.log('changed'); 
    $.getJSON('functions/getfunctions.php', {
        "organization":organization,
        "indicator":indicator,
        "funcid":funcid},

    function(dataChart) {

            var chart = AmCharts.makeChart("chartaveragescore", chartProperties);
            chart.dataProvider = dataChart;
            chart.validateData();
            chart.startDuration = 1;
    });
}