Angular Chart.js core.js:6162错误:“;“行”;不是注册的控制器

Angular Chart.js core.js:6162错误:“;“行”;不是注册的控制器,angular,chart.js,Angular,Chart.js,const gainContext=this.gainRef.nativeElement.getContext('2d')) gainContext.canvas.height='300px' 新图表(gainContext、createChartConfig(gainConfig)) 函数createChartConfig({type,labels,data,label,color}:ChartConfig):ChartConfiguration{ console.log('3 Chart.d

const gainContext=this.gainRef.nativeElement.getContext('2d'))
gainContext.canvas.height='300px'
新图表(gainContext、createChartConfig(gainConfig))
函数createChartConfig({type,labels,data,label,color}:ChartConfig):ChartConfiguration{
console.log('3 Chart.defaults',Chart.defaults)
返回{
键入:“行”,
数据:{
标签,
数据集:[
{
标签,
数据,
边框颜色:颜色,
步骤:错误,
填充:假
}
]
}

}
我们可以通过三种方式来实现

  • 进口

    从'Chart.js'导入{Chart,registerables}

  • 然后注册所有的成分

    Chart.register(...registerables);
    
  • 最后,在一行中有一个单独的路径为您执行上述操作:

    从“Chart.js/auto”导入图表

  • 通过导入并注册@Tatyana Molchanova评论的所需零件

  • 导入{图表、图表配置、LineController、LineElement、PointElement、

    LinearScale, Title} from 'chart.js' 
    
    然后在实例化新图表之前在组件中注册它

    Chart.register(LineController, LineElement, PointElement, LinearScale, Title);
    

    角度12。高列夫的回答对我有效。我必须使用:

    import { Chart, registerables } from 'chart.js';
    export class ChartTest {
    
      constructor() {
        Chart.register(...registerables);
      }
    
      // methods to actually make the chart per documentation
    }
    

    我发现了问题和决定:1.您必须从Chart.js导入所有需要的内容从'Chart.js'2中导入{Chart,ChartConfiguration,LineController,LineElement,PointElement,LinearScale,Title,CategoryScale}。然后在实例化新的Chart.js之前在组件中注册它(LineController、LineElement、PointElement、LinearScale、Title、CategoryScale);错误消失,图表正常工作!这对我也有效,我正在使用vue/nuxt,在让vue-chart.js正常工作时遇到问题。最后使用了chart.js和此注释。非常感谢。在Quasar(vue 2)中测试,效果良好:)刚刚测试过!从“Chart.js/auto”导入图表;效果很神奇!