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() {}
            }
        }
    }

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

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

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

谢谢。

4

4 回答 4

3

从 5.0.0 版开始,您可以简单地执行以下操作:(更新图表的任何选项)

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

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

于 2017-05-25T22:10:51.020 回答
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() {}
        }
    }
}

完成后,参考您的图表对象并在定义之外操作选项。您可以使用 API 中的方法,也可以像处理任何其他对象一样直接操作它:

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

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

于 2013-07-19T21:42:31.687 回答
0

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

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

然后在创建图表时使用:

 exporting: ex

这应该足够了。

于 2013-07-22T12:01:19.243 回答
0

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

var exportingOPT = {};

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

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

chartOptions:exporingOPT
于 2013-07-22T12:00:40.567 回答