angularhighchartsangular-highcharts

I'm currently practicing on highcharts-angular and I have this problem (details below)


I do have only a problem in the app.component.html. I have successfully imported/install all necessary library in my workstation. Below are the codes I am practicing. My current IDE is VS code. But this problem occurs:

Can't bind to 'Highcharts' since it isn't a known property of 'highcharts-chart'. 1. If 'highcharts-chart' is an Angular component and it has 'Highcharts' input, then verify that it is part of this module. 2. If 'highcharts-chart' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. 3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.ngtsc(-998002) app.component.ts(5, 50): Error occurs in the template of component AppComponent.

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HighchartsChartComponent } from 'highcharts-angular';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    HighchartsChartComponent
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

app.component.ts

import { Component } from '@angular/core';
import * as Highcharts from 'highcharts';
@Component({
   selector: 'app-root',
   templateUrl: './app.component.html',
   styleUrls: ['./app.component.css']
})
export class AppComponent {
   highcharts = Highcharts;
   chartOptions = {   
      chart: {
         type: "spline"
      },
      title: {
         text: "Monthly Average Temperature"
      },
      subtitle: {
         text: "Source: WorldClimate.com"
      },
      xAxis:{
         categories:["Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
      },
      yAxis: {          
         title:{
            text:"Temperature °C"
         } 
      },
      tooltip: {
         valueSuffix:" °C"
      },
      series: [{
         name: 'Tokyo',
         data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,26.5, 23.3, 18.3, 13.9, 9.6]
      },
      {
         name: 'New York',
         data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8,24.1, 20.1, 14.1, 8.6, 2.5]
      },
      {
         name: 'Berlin',
         data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
      },
      {
         name: 'London',
         data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
      }]
   };
}

app.component.html

<h1>FIRST</h1>
<highcharts-chart
[Highcharts] = "highcharts" 
[options] = "chartOptions" 
style = "width: 100%; height: 400px; display: block;">
</highcharts-chart>
<router-outlet></router-outlet>

Solution

  • In your app.module.ts you need to import HighchartsChartModule not HighchartsChartComponent

    ...
    import { HighchartsChartModule } from 'highcharts-angular';
    
    @NgModule({
      imports: [
        ...
        HighchartsChartModule
      ]