Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Chart.js core.js:6162 ERROR Error: "line" is not a registered controller

 const gainContext = this.gainRef.nativeElement.getContext('2d')
  gainContext.canvas.height = '300px'

  new Chart(gainContext, createChartConfig(gainConfig))


function createChartConfig({type, labels, data, label, color}: ChartConfig): ChartConfiguration<"line">{

  console.log('3 Chart.defaults', Chart.defaults)

  return {
type: "line",
data: {
  labels,
  datasets: [
    {
      label,
      data,
      borderColor: color,
      stepped: false,
      fill: false
    }
  ]
}
  }

This is not working: It not recognize the type property as it must in official documentation.

let myChart = new Chart(gainContext, { type: 'line',

What I do wrong?

like image 538
Tatyana Molchanova Avatar asked Apr 12 '21 14:04

Tatyana Molchanova


1 Answers

We can do this in three ways

  1. By importing:

    import { Chart, registerables } from 'chart.js';
    

    and then register all the coponents

    Chart.register(...registerables);
    
  2. finally there is an separate path to do just the above for you, in one line:

    import Chart from 'chart.js/auto';
    
  3. By importing and registering the required part as commented by @Tatyana Molchanova

    import { Chart, ChartConfiguration, LineController, LineElement, PointElement, LinearScale, Title} from 'chart.js' 
    

    and then register it in component before instantiating new Chart

    Chart.register(LineController, LineElement, PointElement, LinearScale, Title);
    
like image 60
Gaurav Avatar answered Oct 07 '22 17:10

Gaurav