highcharts, downloadPNG удалить данные диаграммы - PullRequest
0 голосов
/ 03 мая 2018

У меня проблемы с загрузкой больших изображений в формате PNG, я хочу использовать свою собственную кнопку вместо высоких, читая документацию, мне нужно использовать функцию "exportChart", но она удаляет данные:

options:any = {
  exporting: {
    enabled: false
  }
}

exportPNG():void{
   this.chart.exportChart(); 
}

Существует «почти рабочий» пример, который выдает ошибку в app.module с использованием «require», а другой, когда вы пытаетесь импортировать из экспорта, помощь в создании примера будет признательна

https://stackblitz.com/edit/angular-dqck8n

Когда он работает, мы можем нажать «кнопку загрузки» и загрузить диаграмму, но при повторном щелчке возвращается ошибка, поскольку данные удаляются с диаграммы.

Я понял, что это также происходит при экспорте библиотеки, вы можете проверить загрузку файла изображения и попытаться уменьшить его.

1 Ответ

0 голосов
/ 04 мая 2018

Причина в том, что saveInstance метод - он вызывается при загрузке каждого графика. При экспорте создается новая временная диаграмма, а затем удаляется, поэтому теперь ваш угловой компонент имеет ссылку на удаленную экспортированную диаграмму - this.chart внутри exportPNG() относится к пустому объекту диаграммы.

Вы можете проверить, вызывается ли событие load для нормальной диаграммы, а затем сохранить экземпляр диаграммы.

saveInstance(chartInstance): void {
  if (!chartInstance.options.chart.forExport) this.chart = chartInstance;
}

живой пример: https://stackblitz.com/edit/angular-41tmjd?file=app/mychart.component.ts

...