Я пытался понять, почему и как исправить эту бесконечную рекурсию, происходящую в диаграммах Vue legendCallback
Vue, но безрезультатно.Помощь очень ценится.
В моем компоненте Vue параметры определены в следующих методах:
options() {
var self = this;
return {
legend: {
display: false,
position: 'top',
},
legendCallback: chart=> {
return this.generateLegendData(chart)
},
tooltips: {
mode: 'single',
callbacks: {
label: function (tooltipItems) {
return "text"
}
},
}
}
},
И мой метод generateLegendData выглядит так:
generateLegendData(chart) {
var labels = ["SolarCity", "Einstein", "SpaceX", "Mars", "Tesla"];
var backgroundColor = [
"rgba(242,58,48, 0.1)",
"rgba(110,75,63,1)",
"rgba(55,72,172,1)",
"rgba(0,39,39,1)",
"rgba(166,176,69,1)"
];
var text = [];
text.push('<ul class="' + chart.id + '-legend">');
for (var i = 0; i < labels.length; i++) {
text.push(
'<li><span style="background-color:' + backgroundColor[i] + '">'
);
if (labels[i]) {
text.push(labels[i]);
console.log(labels[i]);
}
text.push("</span></li>");
}
text.push("</ul>");
return text.join("");
}
Без цикла for, т. Е. Просто возвращая ожидаемую строку, все работает нормально.