我使用angular2-highcharts并且我的图表工作正常,但我需要将图表导出到XLS。
我需要做的就是做
HighchartsExporting(Highcharts);
HighchartsExportData(Highcharts);
代码中的某处,导出选项将显示在图表中。
问题是如何正确导入HighchartsExporting和HighchartsExportData,因为standard solution
@NgModule({
imports: [
BrowserModule,
ChartModule.forRoot(
require('highcharts'),
require('highcharts/modules/exporting')
],
无法使用AOT,给我一些"错误在编译时静态解析符号值" 。
我可以通过
来实现它import * as HichartsExporting from 'highcharts/modules/exporting';
import * as HighchartsExportData from 'highcharts/modules/export-data';
建议here,但它给了我2个错误:
我可以通过
解决这个问题import HichartsExporting = require('highcharts/modules/exporting');
import HighchartsExportData = require('highcharts/modules/export-data');
建议here,但在AOT编译之后,我得到" 未捕获的ReferenceError:未定义的需求"在运行时。
所有解决方案在实践中似乎都运行良好,我只是无法编译它们。欢迎任何建议。
答案 0 :(得分:1)
您可以创建Highcharts
的实例,其中加载的所有模块都为HighchartsModule(Highcharts)
,然后按照angular2-highcharts docs中的说明将实例传递给forRoot
函数。
您应该可以使用require
或import
加载模块。
import * as Highcharts from 'highcharts';
require('highcharts/modules/exporting')(Highcharts);
或
import * as Highcharts from 'highcharts';
import * as HC_exporting from 'highcharts/modules/exporting';
HC_exporting(Highcharts);
,接着与上述文档相同:
@NgModule({
...
imports: [
BrowserModule,
ChartModule.forRoot(
- require('highcharts'),
+ Highcharts
)
],
})
答案 1 :(得分:0)
以防这有助于任何人,我无法使用导入。相反,我必须在我的HTML中包含<script src="~/node_modules/highcharts/modules/exporting.js">
标记。由于这个JS是一个自我调用函数,所以只需要它就可以工作。