您好我试图使用http://www.chartjs.org中的一个图表,但我无法使其工作..我安装了npm install chart.js --save作为文档要求并使用此代码创建图表。< / p>
.TS
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor(){
var lineChartData: [12, 19, 3, 5, 2, 3];
var lineChartLabels: string[] = ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"];
var lineChartOptions: any = {
responsive: true,
animation: false,
beginAtZero:true
};
var lineChartColors: Array<any> = [
{ // grey
backgroundColor: 'rgba(33,150,243,0.2)',
borderColor: 'rgba(33,150,243,1)',
pointBackgroundColor: 'rgba(33,150,243,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(33,150,243,0.8)'
},
{ // dark grey
backgroundColor: 'rgba(76,175,80,0.2)',
borderColor: 'rgba(76,175,80,1)',
pointBackgroundColor: 'rgba(76,175,80,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(76,175,80,1)'
},
{ // grey
backgroundColor: 'rgba(244,67,54,0.2)',
borderColor: 'rgba(244,67,54,1)',
pointBackgroundColor: 'rgba(244,67,54,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(244,67,54,0.8)'
},
{ // grey
backgroundColor: 'rgba(103,58,183,0.2)',
borderColor: 'rgba(103,58,183,1)',
pointBackgroundColor: 'rgba(103,58,183,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(103,58,183,0.8)'
},
{ // grey
backgroundColor: 'rgba(255,152,0,0.2)',
borderColor: 'rgba(255,152,0,1)',
pointBackgroundColor: 'rgba(255,152,0,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(255,152,0,0.8)'
},
{ // grey
backgroundColor: 'rgba(96,125,139,0.2)',
borderColor: 'rgba(96,125,139,1)',
pointBackgroundColor: 'rgba(96,125,139,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(96,125,139,0.8)'
}
];
var lineChartLegend: boolean = true;
var lineChartType: string = 'line';
}
}
.HTML
<script src="node_modules/chart.js/src/chart.js"></script>
<canvas baseChart height="200"
[datasets]="lineChartData"
[labels]="lineChartLabels"
[options]="lineChartOptions"
[colors]="lineChartColors"
[legend]="lineChartLegend"
[chartType]="lineChartType"
></canvas>
.MODULE
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { ChartsModule } from 'ng2-charts/ng2-charts';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
ChartsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
更新了代码,页面为空白,在控制台中没有错误,但是此消息:
Angular正在开发模式下运行。调用enableProdMode()以启用生产模式。
答案 0 :(得分:0)
Chart.js需要被包装,以便它可以与typescript一起使用。使用import {chart} from 'chart.js';
无法正常工作。尝试使用不同的npm库,如下所示:
https://www.npmjs.com/package/ng2-charts
我已经取得了成功。应该解决你的问题。
您根本不需要导入图表。
只需将您的购物车包含在您的HTML中。像这样:
<canvas baseChart height="200"
[datasets]="lineChartData"
[labels]="lineChartLabels"
[options]="lineChartOptions"
[colors]="lineChartColors"
[legend]="lineChartLegend"
[chartType]="lineChartType"
></canvas>
然后在您的组件中访问它。像这样:
lineChartData: Array<any>;
lineChartLabels: string[] = [..data..
];
lineChartOptions: any = {
responsive: true,
animation: false,
};
lineChartColors: Array<any> = [
{ // grey
backgroundColor: 'rgba(33,150,243,0.2)',
borderColor: 'rgba(33,150,243,1)',
pointBackgroundColor: 'rgba(33,150,243,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(33,150,243,0.8)'
},
{ // dark grey
backgroundColor: 'rgba(76,175,80,0.2)',
borderColor: 'rgba(76,175,80,1)',
pointBackgroundColor: 'rgba(76,175,80,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(76,175,80,1)'
},
{ // grey
backgroundColor: 'rgba(244,67,54,0.2)',
borderColor: 'rgba(244,67,54,1)',
pointBackgroundColor: 'rgba(244,67,54,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(244,67,54,0.8)'
},
{ // grey
backgroundColor: 'rgba(103,58,183,0.2)',
borderColor: 'rgba(103,58,183,1)',
pointBackgroundColor: 'rgba(103,58,183,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(103,58,183,0.8)'
},
{ // grey
backgroundColor: 'rgba(255,152,0,0.2)',
borderColor: 'rgba(255,152,0,1)',
pointBackgroundColor: 'rgba(255,152,0,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(255,152,0,0.8)'
},
{ // grey
backgroundColor: 'rgba(96,125,139,0.2)',
borderColor: 'rgba(96,125,139,1)',
pointBackgroundColor: 'rgba(96,125,139,1)',
pointBorderColor: '#fff',
pointHoverBackgroundColor: '#fff',
pointHoverBorderColor: 'rgba(96,125,139,0.8)'
}
];
lineChartLegend: boolean = true;
lineChartType: string = 'line';