Я пытаюсь создать панель с высокими диаграммами с помощью Asp. Net и Angular, но когда я пытаюсь создать диаграмму с данными из Asp. net, метки отображаются в виде массива строк в каждом фрагменте диаграмма и название легенды отображаются «срезом», и я не знаю почему. Я заметил, что они выглядят так, только когда я использую здесь «name»: «name: allData.map (x => x ['name'] ) "
import { Component, OnInit, Input } from '@angular/core';
import * as Highcharts from 'highcharts';
import { Order } from 'src/app/shared/order';
import {Customer} from 'src/app/shared/customer';
import {SalesDataService} from '../../services/sales-data.service';
import * as moment from 'moment';
@Component({
selector: 'app-pie-chart',
templateUrl: './pie-chart.component.html',
styleUrls: ['./pie-chart.component.css']
})
export class PieChartComponent implements OnInit {
constructor(private _salesDataService:SalesDataService) { }
@Input() inputData:any;
@Input() limit:number;
orderModel:Order[];
customerName:any;
highcharts=Highcharts;
public options: any = {
chart: {
renderTo: 'container',
type: 'pie'
},
title: {
text: ''
},
plotOptions: {
pie: {
innerSize:'50%',
dataLabels: {
enabled:true,
},
showInLegend: true
},
tooltip:{
pointFormat: '{name}: {point.percentage:.1f}%'
},
},
series: [{
name:'',
data:[ ],
}],
}
ngOnInit() {
this.parseChartData(this.inputData,this.limit);
}
parseChartData(res:any,limit? :number){
console.log('response:',res);
const allData=res.slice(0,limit);
console.log('allData(slice):', allData);
this.options.series=[{data:allData.map(x=>x['total']),
name:allData.map(x=>x['name'])
}]
Highcharts.chart('container2',this.options);
}
}
Live Demo:https://jsfiddle.net/rwL45ypc/