/ / Angular 2 - AOT - Volanie funkcie 'ChartModule', volania funkcií nie sú podporované - uhlové, uhlové-cli, angular2-highcharts

Uhlová 2 - AOT - funkcia volania "ChartModule", funkčné volania nie sú podporované - uhlový, uhlový-cli, angular2-highcharts

Stratím nad tým svoju myseľ a vlasy. Importujem HighCharts v Angular 2, ale potrebujem niektoré z jeho ďalších knižníc. Zatiaľ v mojom kóde mám

import {ChartModule} from "angular2-highcharts";
@NgModule({
....
imports:[
ChartModule.forRoot(require("highcharts"), require("highcharts/modules/drilldown"))})
]

Ale túto chybu stále dostávam

Chyba pri rozpoznávaní symbolu sa vyskytla chybahodnoty staticky. Volanie funkcie "ChartModule". volania funkcií nie sú podporované. Zvážte nahradenie funkcie alebo lambda odkazom na exportovanú fukciu.

Tak som to skúsil

export function highchartsRequire:any {
return{
require("highcharts"),
require("highcharts/modules/drilldown")
}
}
...
ChartModule.forRoot(highchartsRequire())

Stále nefunguje. Máte nejaké nápady?

Použitie uhlového 2 uhlové cli: 1,0,0-beta,30

UPDATE - vďaka funkcii JayChase to čiastočne fungovalo

To funguje

export function highchartsFactory() {
return require("highcharts");

}

Ale nemôžem požadovať dve naraz

declare var require: any;
export function highchartsFactory() {
return function () {
require("highcharts");
require("highcharts/modules/drilldown")
};
}

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

Nejaké nápady? Ďakujem.

odpovede:

19 pre odpoveď č. 1

Pre tento problém a riešenie existuje otvorený problém tu pomocou exportovanej funkcie.

    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 { }