如何导入使用angular2-highcharts和AOT编译器exporting.js和出口dat

2019-10-29 11:15发布

我使用angular2-highcharts和我的图表工作得很好,但我需要的图表导出到XLS。

所有我需要做到这一点是做

HighchartsExporting(Highcharts);
HighchartsExportData(Highcharts);

某处代码,以及导出选项将在图表中显示。

问题是如何导入HighchartsExporting和HighchartsExportData正确的,因为标准的解决方案

@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';

如建议在这里 ,但它给了我2个错误:

  • 错误TS2497:模块“‘XXXX / highcharts /模块/导出’”解析为一个非模块实体,并且可以不使用该构建体被导入。 - JIT编译
  • 找不到模块“highcharts /模块/导出数据”。 - AOT编译

我可以这样做解决这个问题

import HichartsExporting  = require('highcharts/modules/exporting');
import HighchartsExportData = require('highcharts/modules/export-data');

如建议在这里 ,但AOT编译后,我得到“ 未捕获的ReferenceError:要求没有定义 ”在运行时。

所有的解决方案似乎工作在实践中很好,我只是不能编译它们。 任何建议都欢迎。

Answer 1:

可以创建的实例Highcharts与加载像所有模块HighchartsModule(Highcharts)然后再通过实例来forRoot功能如在解释angular2-highcharts文档 。

您应该能够使用加载模块requireimport

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
      )
    ],
})


Answer 2:

以防万一,这可以帮助任何人,我不能使用进口去做。 相反,我必须包括<script src="~/node_modules/highcharts/modules/exporting.js">标记在我的HTML。 由于这个JS是自调用功能,这一切都需要,使其工作。



文章来源: How to import exporting.js and export-data.js using angular2-highcharts and AOT compiler?