Angular Primeng: ERROR ReferenceError: Chart is not defined at UIChart.initChart (chart.js: 53)
Importé:
"../node_modules/chart.js/dist/Chart.js",
"../node_modules/chart.js/dist/Chart.bundle.js",
"../node_modules/chart.js/dist/Chart.min.js",
"../node_modules/chart.js/dist/Chart.bundle.min.js"
import { Chart } from 'chart.js';
import { ChartModule } from 'primeng/primeng';
D'après votre question et votre code, il n'est pas très clair quelles sont les étapes que vous avez suivies pour y parvenir. Si vous suivez correctement la documentation Primeng, vous pouvez y parvenir facilement. Voici le détail étape par étape que j'ai suivi pour exécuter le graphique.
J'utilise:
Installez d'abord le tableau js.
npm install chart.js --save
Ajoutez maintenant les chartjs dans votre fichier angular.json.
"scripts": [
"../node_modules/chart.js/dist/Chart.js",
]
il n'est pas nécessaire d'utiliser "../" dans votre script. Si votre fichier node_module et angular.json sont au même niveau, utilisez comme ci-dessous et c'est le comportement par défaut:
"scripts": [
"node_modules/chart.js/dist/Chart.js",
]
Dans app.module.ts
Importez uniquement ChartModule n'importez pas depuis Chart.js comme vous l'avez mentionné dans votre question.
import {ChartModule} from 'primeng/chart';
@NgModule({
declarations: [
AppComponent
],
imports: [
...
ChartModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Maintenant dans vous component.html:
<p-chart type="line" [data]="data"></p-chart>
component.ts:
data: any;
ngOnInit() {
this.data = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'First Dataset',
data: [65, 59, 80, 81, 56, 55, 40],
fill: false,
borderColor: '#4bc0c0'
},
{
label: 'Second Dataset',
data: [28, 48, 40, 19, 86, 27, 90],
fill: false,
borderColor: '#565656'
}
]
}
}
C'est tout ce que nous devons faire.