如何将参数传递给Highcharts-Function

时间:2016-02-04 17:24:22

标签: javascript highcharts

我尝试将一些线条(路径)绘制到Highcharts-Chart中。导出图表时,线条应该略有不同。因此我创建了一个Highcharts-Function,我称之为“load”和“redraw”。我只需要在调用函数时传递一个小参数,但这不起作用。我如何通过论证?

以下是相关的代码细节:

Highcharts.linien = function (r) { //generating the lines with my r-argument }

...

chart: {
   events: {
   load: Highcharts.linien(0)
}

exporting: {
    chartOptions: {
        chart: {
        events: {
            load: Highcharts.linien(15)
        }
    }
}

这是一个没有使用参数的工作jsFiddle

此外:如果有人有线索,如何在“重绘”中摧毁我的svg-group(linienGruppe),我也将非常感激!

2 个答案:

答案 0 :(得分:2)

应该有:

chart: {
  events: {
    load: function(){
      Highcharts.linien.call(this, 0);
    }
  }
}

exporting: {
  chartOptions: {
    chart: {
      events: {
        load: function(){
          Highcharts.linien.call(this, 15);
        }
      }
    }
  }
}

因此,使用call(),您可以将this对象传递给您的函数。

关于摧毁组,首先存储在你的组中的某个地方,所以以后你可以销毁那个对象,如下所示:

if(this.linienGruppe) {
    this.linienGruppe.destroy();
}

this.linienGruppe = linienGruppe;

工作演示:http://jsfiddle.net/t3ywb3gq/4/

答案 1 :(得分:1)

Highcharts.linien(0)& Highcharts.linien(15)既是函数执行/调用,也不是处理程序。处理程序本身就是一个函数。由于你想传​​递一个参数,我建议你创建一个内联匿名函数,其中一行用适当的参数调用你创建的方法,如下所示;

chart: {
   events: {
   load: function(){
       Highcharts.linien(0);
   }
}

exporting: {
    chartOptions: {
        chart: {
        events: {
            load: function(){
               Highcharts.linien(15);
            }
        }
    }
}

updated jsFiddle