highcharts动态更改导出选项

时间:2013-07-19 20:37:14

标签: highcharts

我有如下图表选项:

'chart' : {
    'defaultSeriesType' : 'bar',
    'renderTo' : QIS.WERM.CcySpotValuationContent.LINE_CHART_AREA_ID_
    },
'title' : {
    'text' : title
    },
'exporting':{
    'buttons': {
        'contextButton': {      
            'symbol':'url(/fxqis/public/images/excel.gif)',
            'onclick': function() {}
            }
        }
    }

但我想要的是动态使用不同的导出选项。如下:

if(something){
    'exporting':{
        'buttons': {
            'contextButton': {      
                'symbol':'url(/fxqis/public/images/excel.gif)',
                'onclick': function() {}
                }
        }
    }
}
else{
    'exporting':{
        'enabled':false
        }
}

我可以在图表选项中添加这样的if / else条件吗?我怎么能这样做?

感谢。

4 个答案:

答案 0 :(得分:3)

从5.0.0版开始,你可以简单地做到: (更新图表的任何选项)

 chart.update({
        exporting: {
            buttons: {
                contextButton: {
                    text: 'New Dynamic Text'
                }
            }
        }
    });

http://api.highcharts.com/highcharts/Chart.update

答案 1 :(得分:1)

您不希望在默认图表对象中进行操作(对于有组织的代码而言,它很混乱)。找出您的默认选项并将其放在图表对象中。因此,如果默认情况下启用导出选项,则代码如下:

'chart' : {
    'defaultSeriesType' : 'bar',
    'renderTo' : QIS.WERM.CcySpotValuationContent.LINE_CHART_AREA_ID_
},
'title' : {
    'text' : title
},
'exporting':{
   'buttons': {
    'contextButton': {      
        'symbol':'url(/fxqis/public/images/excel.gif)',
        'onclick': function() {}
        }
    }
}

完成后,请参考图表对象并操作定义的OUTSIDE选项。您可以使用API​​中找到的方法,或者像执行任何其他对象一样对其进行操作:

if(something){
var chart = $('#container').highcharts();
chart.options.exporting.enabled = false;
}

您可以使用API​​设置导出选项,如下所示:http://api.highcharts.com/highcharts#Chart.exportChart()

答案 2 :(得分:0)

在JSON内部是不可能的,但你可以使用这样的东西:

var exportingOPT = {};

    if(condition)
       exportingOPT = {
         param: true
       }
    else
       exportingOPT = {
         param: false
       }

然后在Highcharts的图表配置中使用:

chartOptions:exporingOPT

答案 3 :(得分:0)

你真的很接近你所需要的,简单的改变:

var ex;
if(something){
  ex = {
    'buttons': {
        'contextButton': {      
            'symbol':'url(/fxqis/public/images/excel.gif)',
            'onclick': function() {}
            }
    }
  }
}
else{
  ex = {
    'enabled':false
  }
} 

然后在创建图表时使用:

 exporting: ex

这应该足够了。