Highchart - 柱形图 - 向下钻取事件多次触发

时间:2017-12-21 10:43:25

标签: javascript jquery angularjs highcharts highcharts-ng

我使用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)

任何人都可以指导我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我也面临同样的问题。而且,这真的让我大吃一惊。无需升级highchart版本。

在使chartconfig执行以下任务时,

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

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