我试图用自己的按钮调用导出,但得到了以下错误:
TypeError: AmCharts.AmExport is not a constructor
我使用了一个在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相比,后者不是一个文件,只是在图表中给出。想法?
发布于 2018-05-31 09:45:56
该示例使用的是一个非常旧的导出插件版本。在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
https://stackoverflow.com/questions/50628416
复制