Я пытаюсь (около недели !!) отрисовать диаграмму, которая отлично работает с жестко закодированными метками, но с моими метками (данными) из MySQL она показывает только пустую страницу.
Однако, если я укажу на мои метки console.log, он покажет мне все данные, отправленные из моей БД, которые я хочу поместить в качестве меток на свой график.
В моем индексе . js:
router.get('/api', function (req, res) {
axios.get('http://localhost:3000/projetos/quantos/ci')
.then(dados =>{
const d = dados.data;
var labelsx = [];
for(var i = 0; i < d.length; i++){
labelsx.push(d[i].Nome);
}
console.log(labelsx);
var datax = [];
for(var j = 0; j < d.length; j++){
datax.push(d[j].QuantosHa)
}
console.log(datax);
res.render('chart',
{title: "chart",
datai: JSON.stringify(datax),
labeli: labelsx
})
})
.catch(erro => {e: erro});
});
My chart.pug :
extends layout
block content
script(src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js")
div
each l in labeli
ul=l
div
.chart-container
canvas#chartPic
script.
var ctx = document.getElementById("chartPic").getContext('2d');
ctx.canvas.parentNode.style.width = '50%';
var idata = #{datai};
var chart = new Chart(ctx, {
type: 'pie',
data: {
labels: [],
datasets: [{
data: idata,
backgroundColor: ['red', 'green', 'blue', 'pink', 'black'],
borderColor: ['green', 'blue', 'red', 'black', 'pink'],
borderWidth: 1
}]
},
options: {
title: {
display: true,
text: "top 5 centros com mais projetos"
},
legend: {
position: 'bottom'
}
}
});
Если я поставлю, например, ["one", "two", "three", «четыре», «пять»] в поле меток моего графика без проблем отображается, а также то, что «каждый л в этикетке» работает просто отлично, но каждый раз, когда я пытаюсь передать его на свой график, страница становится пустой, как это:
Если я скажу, что он показывает код мопса, я получу диаграмму:
Может ли кто-нибудь мне помочь? Заранее благодарим за любые ваши предложения!