amcharts - экспортировать график, используя мои собственные кнопки вне графика - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь вызвать экспорт своими собственными кнопками вне графика, но получаю следующую ошибку:

TypeError: AmCharts.AmExport is not a constructor

Я использовал пример, который я нашел в stackoverflowна http://jsfiddle.net/BGuuT/2/, который, кстати, работает, но, по некоторым причинам, в моей собственной реализации, похоже, не работает.Может быть, у меня более новая версия?

Я включаю в свою страницу:

amcharts-3.21.12/amcharts.js
amcharts-3.21.12/serial.js
amcharts-3.21.12/plugins/export/export.js

html:

<ul id="chart-selector">
    <li class="dropdown-item" data-click="JPG">JPG</li>
    <li class="dropdown-item" data-click="PNG">PNG</li>
    <li class="dropdown-item" data-click="SVG">SVG</li>
    <li class="dropdown-item" data-click="CSV">CSV</li>
    <li class="dropdown-item" data-click="JSON">JSON</li>
    <li class="dropdown-item" data-click="PDF">PDF</li>
    <li class="dropdown-item" data-click="XLSX">XLSX</li>
    <li class="dropdown-item" data-click="PRINT">Print</li>
</ul>

Я получаю правильное значение экспорта для передачиздесь, но ошибка конструктора по-прежнему показывает:

chart = AmCharts.makeChart("chart_chart", { .......... });

$('body').on('click', '#chart-selector .dropdown-item', function(e) {

    var test = $(this).data('click');

    //chart download action
    var exp = new AmCharts.AmExport(chart);
        exp.init();
        exp.output({
            format: test
        });
});

Единственное различие, которое я вижу между шахтой и указанной ссылкой, - это export.js по сравнению с amexport_combined.js - последняя не является файлом, заданным в amchartsхоть.Идеи?

1 Ответ

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

В этом примере используется очень старая версия плагина экспорта.На сайте AmCharts есть примеры базы знаний, в которых используется текущая версия плагина для AmCharts v3:

https://www.amcharts.com/kbase/export-chart-data-to-json-csv-and-excel-via-api/ https://www.amcharts.com/kbase/export-charts-advanced/

Основная идея заключается в использовании экспортаcapture метод для захвата состояния диаграммы для формата изображения, используйте методы to* для преобразования формата, затем вызовите download в обратном вызове.Для форматов на основе данных, таких как CSV, JSON и XLSX, просто вызовите связанный метод to*, а затем download

Для JPG:

  chart.export.capture({}, function() {
    this.toJPG({}, function(data) {
      this.download(data, this.defaults.formats.JPG.mimeType, "amCharts.JPG");
    });

Для CSV

  chart.export.toCSV({}, function(data) {
    this.download(data, this.defaults.formats.CSV.mimeType, "amCharts.csv");
  });

(Обратите внимание, что отключение внутреннего раскрывающегося списка плагина экспорта можно сделать, установив menu: [] в конфигурации экспорта.)

Вот пример вызова API экспорта через ваши кнопки: https://codepen.io/team/amcharts/pen/36056b016c577dc6bc5b4a40120fc71c

...