如何在xAxis事件处理程序中设置Extremes?

问题描述 投票:0回答:2

我尝试在下面的 xAxis 事件处理程序中设置Extremes,但收到未捕获的类型错误。 如何在 xAxis 事件处理程序中设置Extremes?

xAxis: {
    events: {
        setExtremes: function (e) {
            if (e.trigger === "navigator") {
                    forceRebuildSeries(); //Get all data points

                    // Set Extremes (redisplay with new data points)
                    this.chart.xAxis[0].setExtremes(e.min, e.max);  //Uncaught TypeError: Property 'setExtremes' of object #<Object> is not a function 
            }
        }
    }
},

如果有任何帮助或解决方法,我将不胜感激。 谢谢。

highcharts
2个回答
8
投票

我知道现在有点晚了,只是想向未来的访客添加我的答案。

Highchart 不允许从 setExtremes 事件处理程序内部调用 setExtremes 以避免无限循环。这就是您收到错误的原因。

但是,您可以插入超时来解决此保护问题:

xAxis: {
    events: {
        setExtremes: function (e) {
            if (e.trigger === "navigator") {
                var c = this;
                setTimeout(function() {
                    forceRebuildSeries(); //Get all data points

                    // Set Extremes (redisplay with new data points)
                    c.chart.xAxis[0].setExtremes(e.min, e.max);  
                 
                }, 1);
             }
        }
    }
}

0
投票

看起来 highcharts 实际上在回调期间将 xAxis 对象的所有属性设置为 null。 您不需要这样做,尽管您可能只需注释掉给出错误的行就可以了

© www.soinside.com 2019 - 2024. All rights reserved.