我正在尝试使用我自己的按钮在图表外部调用导出,但是收到以下错误:
TypeError: AmCharts.AmExport is not a constructor
我使用的是我在http://jsfiddle.net/BGuuT/2/的stackoverflow上找到的一个例子,顺便说一句,但是由于某种原因,我似乎没有在我自己的实现中。也许我有更新的版本?
我在我的页面中包含:
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中给出的文件。想法?
答案 0 :(得分:3)
该示例使用的是旧版本的导出插件。有关AmCharts的知识库示例&#39;使用当前版本的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