【发布时间】:2018-03-16 00:14:05
【问题描述】:
我对 Angular 5 完全陌生。我想在我的应用程序中使用向下钻取图表。有很多选择,对于这个项目,我想使用一个开源库。所以我正在使用 ng2-charts。默认情况下 ng2-chart 不支持向下钻取图表。所以我所做的是,点击事件我加载一个新数据和一个图表。这是我尝试过的。
组件.ts
export class ChartComponent{
public clickBtn = false;
data1:string;
data2:string;
label:string;
previousBtnMsg:string;
public chartClickTimes: number = 0;
public barChartOptions:any = {
scaleShowVerticalLines: false,
responsive: true
};
public barChartLabels:string[] = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
public barChartType:string = 'bar';
public barChartLegend:boolean = true;
public barChartData:any[] = [
{data: [65, 59, 80, 81, 56, 55, 40], label: 'Type A'},
{data: [28, 48, 40, 19, 86, 27, 90], label: 'Type B'}
];
public newDataValues:any[] = [
{data: [40,37,50,70,50,34,50], label: 'Type A'},
{data: [54,34,56,76,57,37,56], label: 'Type B'}
];
// events
public chartClicked(e:any):void {
this.chartClickTimes =this.chartClickTimes + 1 ;
this.clickBtn = true;
if(e.active.length > 0) {
this.previousBtnMsg = "Back to series";
let newData1 = [40,37,50,70,50,34,50];
let newData2 = [54,34,56,76,57,37,56];
let newData3 = [35,36,45,64,43,23,33];
let newData4 = [54,44,36,46,47,37,34];
if(this.chartClickTimes ==1){
let clone = JSON.parse(JSON.stringify(this.barChartData));
clone[0].data = newData1;
clone[1].data = newData2;
this.barChartData = clone;
}else if(this.chartClickTimes ==2){
let clone = JSON.parse(JSON.stringify(this.barChartData));
clone[0].data = newData3;
clone[1].data = newData4;
this.barChartData = clone;
}
}
}
buttonClick(){
console.log('Clicked')
}
}
html
<div class="chart-display">
<div *ngIf="clickBtn">
<button (click)="buttonClick(item)">{{previousBtnMsg}}</button>
</div>
<div style="display: block">
<canvas baseChart
#baseChart="base-chart"
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[legend]="barChartLegend"
[chartType]="barChartType"
(chartClick)="chartClicked($event)"></canvas>
</div>
</div>
当用户选择新图表时,它会显示一个后退按钮。如何显示该事件的上一个图表( buttonClick 方法)?标签也不会更新。 (我删除了这些代码)有人可以帮我解决这个问题吗?
【问题讨论】:
标签: angular ng2-charts