如何将参数传递给Highcharts pointFormatter回调函数

时间:2018-06-25 18:58:48

标签: javascript highcharts

Highcharts具有一个可以接受回调函数的pointFormatter选项。我想在该格式化程序中使用几个变量。我怎么做?抱歉,这很明显;我是JS的新手。这是我到目前为止的内容:

chart.addSeries({
      id: "buy1",
      name: "Buys for SD #1",
      type: "scatter",
      color: "#23DA47",
      data: buySellCleaner(buysPoints1),
      tooltip: { 
         pointFormatter: function(priceArr, buysPoints1) {
             return "Time" + "<b>" + unixToEST(this.x) + "</b>" + "<br/>Price: <b>" + priceArr[buySellCleaner(buysPoints1)[this.series.data.indexOf( this.point )][2]][1] + "</b>";
        }
   },
});

很明显priceArr和buysPoints1没有在范围内定义...我该如何解决?

1 个答案:

答案 0 :(得分:2)

如果它们在chart.addSeries的范围内,则它们应该在pointFormatter回调函数的范围内。

pointformatter examples中,highcharts似乎没有将任何参数传递给回调。

您正在做的是向pointformatter回调函数添加不必要的参数,并用priceArr覆盖buysPoints1undefined的先前值。它们是undefined,因为当highcharts为您调用pointformatter回调时,它不会将任何值传递给调用,因此您的参数(priceArr和buysPoints1)在函数内部未定义。

尝试从回调参数中删除它们。

pointFormatter: function() {
    return "Time" + "<b>" + unixToEST(this.x) + "</b>" + "<br/>Price: <b>" + priceArr[buySellCleaner(buysPoints1)[this.series.data.indexOf( this.point )][2]][1] + "</b>";
}