Отображение данных из API загрузки Spring в диаграмму primeng Угловой

#angular #spring-boot #primeng

Вопрос:

У меня есть внутренний api, в котором я создал веб-службу, которая выдает этот ответ json:

 [
 {
    "backgroundColor": "#36A2EB",
    "hoverBackgroundColor": "#36A2EB",
    "type": "SUCCESS",
    "value": 1
 }
]
 

это мой код ts:

 data: any;
ngOnInit(): void {
this.dashboardService.getStatStatusOverall().subscribe((data)=>{
  this.data.datasets[0].data = data.map(a =>  a.value);
  this.data.datasets[0].backgroundColor = data.map(a =>  a.backgroundColor);
  this.data.datasets[0].hoverBackgroundColor = data.map(a =>  a.hoverBackgroundColor);
  this.data.labels = data.map(a =>  a.type);
  //this.chart.refresh();
})
}
 

а это это мой html код:

 <p-chart type="doughnut" [data]="data"></p-chart>
 

Я получаю эту ошибку в своей консоли:»Не удается прочитать свойство» наборы данных «неопределенного»

Ответ №1:

Вы не инициализируете переменную this.data .

Попробуйте сделать следующее

 data: { datasets: any[], labels: any[] } = { datasets: [], labels: [] };

ngOnInit(): void {
  this.dashboardService.getStatStatusOverall().subscribe((data) => {
    this.data = {
      datasets: [{
        data: data.map(a => a.value),
        backgroundColor: data.map(a => a.backgroundColor),
        hoverBackgroundColor: data.map(a => a.hoverBackgroundColor),
      }],
      labels: data.map(a => a.type)
    };
    // this.chart.refresh();
  });
}
 

Комментарии:

1. я пытаюсь поместить обе диаграммы в одну строку с каждым 6 кольцами»<класс div=»строка»> <класс div=»строка»><классы div=»col-md-6″> <классы div=»col-md-6″><тип диаграммы p=»пончик» [данные]=»данные»><тип диаграммы p=»пончик» [данные]=»данные»></p-диаграмма> </p-диаграмма></div> </div><классы div=»col-md-6″> <классы div=»col-md-6″><тип диаграммы p=»круг» [данные]=»data2″><тип диаграммы p=»круг» [данные]=»data2″></p-диаграмма> </p-диаграмма></div> </div></div> < / div > » но это не работает