首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角2- AOT -调用函数“ChartModule”,不支持函数调用

角2- AOT -调用函数“ChartModule”,不支持函数调用
EN

Stack Overflow用户
提问于 2017-03-06 22:39:58
回答 1查看 5.4K关注 0票数 10

这件事让我失去了理智和头发。我在Range2中导入HighCharts,但需要一些额外的库。到目前为止在我的代码中

代码语言:javascript
复制
import {ChartModule} from 'angular2-highcharts';
@NgModule({
....
imports:[
ChartModule.forRoot(require('highcharts'), require('highcharts/modules/drilldown'))})
]

但我一直在犯这个错误

错误中遇到静态解析符号值的错误。调用函数“ChartModule”。不支持函数调用。考虑用导出函数的引用替换函数或lambda。

所以我试着

代码语言:javascript
复制
export function highchartsRequire:any {
   return{
     require('highcharts'), 
     require('highcharts/modules/drilldown')
   }
}
...
ChartModule.forRoot(highchartsRequire())

还是不起作用。有什么想法吗?

使用角2角cli: 1.0.0-β。

更新--由于JayChase的帮助,它得到了部分工作

这工作

代码语言:javascript
复制
export function highchartsFactory() {
      return require('highcharts');

    }

,但我不能一次需要两个

代码语言:javascript
复制
declare var require: any;
export function highchartsFactory() {
  return function () {
    require('highcharts');
    require('highcharts/modules/drilldown')
  };
}

@NgModule({
  imports: [
    ChartModule
  ],
  providers: [
    {
      provide: HighchartsStatic,
      useFactory: highchartsFactory
    }
  ],

有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-07 01:56:02

这方面存在一个问题,并使用导出函数解决这里问题。

代码语言:javascript
复制
    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    import { FormsModule } from '@angular/forms';
    import { HttpModule } from '@angular/http';
    import { ChartModule } from 'angular2-highcharts';
    import { HighchartsStatic } from 'angular2-highcharts/dist/HighchartsService';

    import { AppComponent } from './app.component';

    declare var require: any;

    export function highchartsFactory() {
      const hc = require('highcharts');
      const dd = require('highcharts/modules/drilldown');
      dd(hc);

      return hc;
    }

    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        FormsModule,
        HttpModule,
        ChartModule
      ],
      providers: [
        {
          provide: HighchartsStatic,
          useFactory: highchartsFactory
        }
      ],
      bootstrap: [AppComponent]
    })
    export class AppModule { }
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42636948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档