#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 > » но это не работает