首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在组件被破坏后,从HighChart中删除扩展的Wrap方法

在组件被破坏后,从HighChart中删除扩展的Wrap方法
EN

Stack Overflow用户
提问于 2022-05-25 05:27:39
回答 1查看 61关注 0票数 0
代码语言:javascript
运行
复制
H.wrap(H.Chart.prototype, 'render', function (proceed) {
  var chart = this,

  proceed.call(chart);
  // Add the mousewheel event to make vertical scroll
  H.addEvent(chart.container,'mousewheel', function (event) {

    let delta, extr, step,  axis = chart.yAxis[0];

    let e = chart.pointer.normalize(event);
    // Firefox uses e.detail, WebKit and IE uses wheelDelta
    delta = e.detail || (e.wheelDelta / 120);
    delta = delta < 0 ? 1 : -1;
    extr = axis.getExtremes();
    const min = extr.min;
    const max = extr.max;
    const dataMax = extr.dataMax;
    if (chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop) && (min > 1 || (min < 1 && delta === 1)) && (max < dataMax || (max >= dataMax && delta === -1))) {
      step = (extr.max - extr.min) / 5 * delta;
      axis.setExtremes(extr.min + step, extr.max + step, true, false);
    }
    globalObj.stopEvent(event); // Issue #5011, returning false from non-jQuery event does not prevent default
    return false;
  });
})

我正在使用ngOndestroy销毁图表,当我再次返回到相同的组件时,先前创建的闭包仍未销毁。当组件被破坏时,我需要删除包装函数。

EN

回答 1

Stack Overflow用户

发布于 2022-06-28 11:14:00

根据@ppotaczek的建议,我删除了Wrap函数,并在创建图表后调用了add函数。

代码语言:javascript
运行
复制
const globalObj = this;
this.highchartRef = Highcharts.ganttChart('container', this.chartOptions, function(chartObj){
  globalObj.addMouseWheelEvent(chartObj); //Called my add mouse wheel event
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72372363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档