Skip to content

Fusion Charts not rendering in Angular 18 #189

@paksydavid

Description

@paksydavid

After upgrading to Angular 18.0.3, FusionCharts are not rendering anymore.

Additionally the following error is logged to the browser developer console:

ERROR TypeError: FusionChartsModules is not a function
    at fusioncharts.service.js:51:21
    at Array.forEach (<anonymous>)
    at FusionChartsService2.resolveFusionCharts (fusioncharts.service.js:45:21)
    at new FusionChartsService2 (fusioncharts.service.js:26:14)
    at NodeInjectorFactory.FusionChartsService_Factory [as factory] (fusioncharts.service.js:65:81)
    at getNodeInjectable (core.mjs:6007:44)
    at searchTokensOnInjector (core.mjs:5930:16)
    at lookupTokenUsingNodeInjector (core.mjs:5879:34)
    at getOrCreateInjectable (core.mjs:5789:23)
    at ɵɵdirectiveInject (core.mjs:11331:19)

Versions:

"dependencies": {
    "@angular/animations": "^18.0.3",
    "@angular/cdk": "^18.0.3",
    "@angular/common": "^18.0.3",
    "@angular/compiler": "^18.0.3",
    "@angular/core": "^18.0.3",
    "@angular/forms": "^18.0.3",
    "@angular/material": "^18.0.3",
    "@angular/platform-browser": "^18.0.3",
    "@angular/platform-browser-dynamic": "^18.0.3",
    "@angular/router": "^18.0.3",
    "angular-fusioncharts": "^4.0.3",
    "fusioncharts": "^3.20.0",
    "rxjs": "~6.6.6",
    "tslib": "^2.0.0",
    "zone.js": "~0.14.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^18.0.4",
    "@angular-eslint/builder": "18.0.1",
    "@angular-eslint/eslint-plugin": "18.0.1",
    "@angular-eslint/eslint-plugin-template": "18.0.1",
    "@angular-eslint/schematics": "18.0.1",
    "@angular-eslint/template-parser": "18.0.1",
    "@angular/cli": "^18.0.4",
    "@angular/compiler-cli": "^18.0.3",
    "@angular/language-service": "^18.0.3",
  }

How we import / configure FusionCharts

import {FusionChartsModule} from "angular-fusioncharts";

import * as FusionCharts from "fusioncharts";
import * as charts from "fusioncharts/fusioncharts.charts";
import * as PowerCharts from "fusioncharts/fusioncharts.powercharts";

FusionCharts.options['license']({
  key: '<license>',
  creditLabel: false,
});

FusionChartsModule.fcRoot(FusionCharts, PowerCharts, charts);

@NgModule({
  imports: [
   
    // FusionCharts bridge library
    FusionChartsModule,
  ]
})
...

Is this maybe because angular-fusioncharts does not support Angular 18 yet?

Do you maybe know about a workaround to fix this?

Many thanks in advance for you help. 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions