【问题标题】:Highchart - Column chart - Drilldown event fires many timesHighchart - 柱形图 - 多次触发向下钻取事件
【发布时间】:2017-12-21 10:43:24
【问题描述】:

我已经使用 highchart 实现了柱形图,并尝试在向下钻取中显示另一系列数据。向下钻取工作正常,但事件触发多次。例如:如果您第二次单击某个条形,则向下钻取事件将触发 2 次。向下钻取事件随着点击次数的增加而增加。

而且我不知道如何停止该事件。(stopPropagation 不起作用)。

events: {
  drilldown: function(e) {
    if (!e.seriesOptions) {
      chart = this;
      chart.showLoading('<div class="loading-modal loading-modal-wrapper"><div class="loading-title">Loading...</div></div>');
      const param = {
        method: 'Get',
        url: `/test/`
      };
      service.ajax(param, resp => {
        // Show the loading label
        formatSeriesData(e.point.category, resp);
        $timeout(() => {
          chart.xAxis[0].categories = drilldownCategories;
          chart.xAxis[0].axisTitle.attr({
            text: e.point.category
          });
          chart.addSeriesAsDrilldown(e.point, drilldownSeriesData);
          chart.hideLoading();
          chart.applyDrilldown();
        });
      }, () => {
        $log.log("API data failed!");
      });

    }
  },
    drillup: () => {
      chart.xAxis[0].categories = $ctrl.categories;
    }
}

错误信息:

angular.js:14199 TypeError: Cannot read property 'xAxis' of null
    at a.Chart.q.addSingleSeriesAsDrilldown (drilldown.js:10)

    at a.Chart.q.addSeriesAsDrilldown (drilldown.js:10)

谁能指导我解决这个问题。

【问题讨论】:

  • @ewollen 有什么想法吗?如何停止/销毁 highchart 事件?
  • 我已经升级了highChart(6.0.4)的版本。现在它工作正常。 :)

标签: javascript jquery angularjs highcharts highcharts-ng


【解决方案1】:

我也遇到了同样的问题。而且,它真的让我大吃一惊。无需升级highchart版本。

在让 chartconfig 执行以下任务时,

if(chartInitialized){           
        chartInitialized = false;
    }
    else{
         chartConfig.chart.events = Object.create({});
    }

并在加载时将变量初始化为 true。 谢谢:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多