HighchartsAdapter不再可用,调用adapterRun的新方法是什么?

时间:2016-01-11 15:06:09

标签: javascript charts highcharts

我有这个原始问题HighCharts: How to use reflow to allow auto-resize after changing size

我得到的答案是以下代码块:

if (!vs.chartObject.reflowNow) {
    vs.chartObject.reflowNow = vs.chartObject.reflowNow = function() {
        this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');
        this.containerWidth  = this.options.chart.width  || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');

        if (vs.expandedType === 'max') {
            this.setSize(this.containerWidth, (this.containerHeight-220), true);
        } else {
            this.setSize(this.containerWidth, this.containerHeight, true);
        }

        this.hasUserSize = null;
    }
 }

 vs.chartObject.reflowNow();

但是现在由于某些原因我得到了undefinedwindow.window.HighchartsAdapter

现在打破了我的图表扩展代码。

当我控制登录的window.window并展开它时,我可以看到不再有HighchartsAdapter

enter image description here

你们中的任何人都知道哪种方法现在替换HighchartsAdapter

enter image description here

1 个答案:

答案 0 :(得分:3)

自4.2.1 HighchartsAdapter从核心中删除。这意味着Highcharts lib不再依赖于jQuery或任何其他库。

在旧版本的源代码中,您可以找到该方法:

adapterRun: function (elem, method) {
    return $(elem)[method]();
},

这意味着,如果您使用的是jQuery,则可以替换:

window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height')

使用:

$(this.renderTo).height();

说实话,你总是可以使用这个解决方案 - 它比使用adapterRun()更具可读性。