highcharts-ng:相当于$('#container')。highcharts()

时间:2014-07-02 07:18:37

标签: javascript angularjs highcharts highcharts-ng

我在控制器中创建了图表的配置,如下所示:

$scope.ohlcChartConfig = {            
        options: {.......

就像在HighCharts-ng(HighCharts的angularJS指令)中完成的那样。

我想要相当于以下内容:

var chart = $('#container').highcharts();

这样我就可以在highcharts-ng中调用以下方法:

var svg = chart.getSVG();
chart.xAxis[0].addPlotBand({...})
chart.xAxis[0].removePlotBand('plot-id');

目前,我试图这样做:

var chart= $scope.ohlcChartConfig;

但是当我调用这些方法时,我得到的错误是“未定义不是函数”。

这是一个非常简化的JSFiddle,我试图获取图表对象并在其上调用方法。

提前致谢。

1 个答案:

答案 0 :(得分:2)

仅查看highcharts-ng上的来源 - 变量chart未在任何地方返回,因此您无法直接从Highcharts API访问方法。

但是,您可以简单地解决此问题:

var chart = Highcharts.charts[0];

Highcharts.charts数组包含页面上的所有图表。看简单的演示: http://jsfiddle.net/fxGq4/2/

注意:使用getSVG()方法时,后台创建的是新图表,因此Highcharts.charts数组会获得更多图表,或者在图表被销毁时显示undefined

另外,不要忘记添加exports.js文件!网址:http://code.highcharts.com/exporting.js