重用功能将数据加载到Highchart中

时间:2013-05-19 09:44:19

标签: javascript jquery highcharts

我有一个Highchart对象和一个加载数据的函数:

graficaPropuestas = new Highcharts.Chart({
        chart: {
            height: 300,
            renderTo: "graficaPropuestas",
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false,
            events: {
                load: recogerDatosInforme('propuesta', $(this))
            }
        }
 })

加载数据的功能:

function recogerDatosInforme(tipo, gr) {
        $.ajax({
            url: '/Licencia/recogerDatosUsuariosSistema?tipo' + tipo,
            datatype: "json",
            success: function(data) {
                gr.series[0].setData(data);
            },
            cache: false
        });
    }

我想将graficaPropuestas对象传递给函数,以便我可以重用相同的函数来加载更多图形,但是我无法使其工作。如果我直接将函数graficaPropuestas对象放在函数上:它运行良好。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果您只有一个graficaPropuestas个实例更好,效率更高将使用该解决方案:

var graficaPropuestas = new Highcharts.Chart( ... 

function recogerDatosInforme(tipo) {
        $.ajax({
            url: '/Licencia/recogerDatosUsuariosSistema?tipo' + tipo,
            datatype: "json",
            success: function(data) {
                graficaPropuestas.series[0].setData(data);
            },
            cache: false
        });
    }

答案 1 :(得分:0)

我通过这种方式解决了这个问题:

获取数据的功能:

function recogerDatosInforme(tipo, gr) {
        $.ajax({
            url: '/Informes/recogerDatosInforme?tipo=' + tipo,
            datatype: "json",
            success: function(data) {
                gr.series[0].setData(data);
            },
            cache: false
        });
    }

然后我在init上使用events方法创建图表:

graficaPropuestas = new Highcharts.Chart({
    chart: {
        height: 300,
        renderTo: "graficaPropuestas",
        plotBackgroundColor: null,
        plotBorderWidth: null,
        plotShadow: false
    }

})

我用图形对象作为参数调用函数:

recogerDatosInforme('propuesta', graficaPropuestas)

所以现在我可以创建更多的图表对象并使用相同的函数来获取数据。