我正在尝试在我的角度4项目中使用ng2-charts
HTML:
<canvas baseChart
[datasets]="customerBarChartData"
[colors]="barChartColors"
[options]="customerBarChartOptions"
[legend]="barChartLegend"
[chartType]="barChartType"
></canvas>
TS:
geochatArry: Array<any> = [];
....
public customerBarChartData:any[] = this.geochatArry;
....
/// Service
this.geochatArry=data.json();
console.log(this.geochatArry);
但我得到了ng-charts configuration error,data or datasets field are required to render char bar
。请告诉我我的错误在哪里。
感谢。
答案 0 :(得分:1)
当动态数据进入时,请使用* ngIf&#34; customerBarChartData&#34;然后它会工作。
<div style="display: block" *ngIf="customerBarChartData">
<canvas baseChart
[datasets]="customerBarChartData"
[colors]="barChartColors"
[options]="customerBarChartOptions"
[legend]="barChartLegend"
[chartType]="barChartType">
</canvas>
</div>
答案 1 :(得分:0)
您绑定到customerBarChartData,由于geochatArry为空,因此初始化为空。当您稍后设置geochatArry时,您没有像您认为的那样设置customerBarChartData。
添加console.log(this.customerBarChartData)进行验证。
答案 2 :(得分:0)
一种解决方案是在收到数据后创建图表。
构建图表后,分配一个变量,如
chartReady = true;
在您的HTML
中,用
*ngIf="chartReady"
因此您可以隐藏它,直到建立图表为止。