У меня есть эти две функции, где «form» - это имя объекта Vue:
form.sizeChartAsImage();
form.setSizeChart();
Это код указанных функций:
setSizeChart: function () {
for (i = 0; i < this.columns.length; i++) {
this.product.size_chart.push({
position_x: 0,
position_y: i,
value: this.columns[i],
})
for (j = 0; j < this.data.length; j++) {
for (var key in this.data[j]) {
if(key === this.columns[i]) {
this.product.size_chart.push({
position_x: j+1,
position_y: i,
value: this.data[j][key],
})
}
}
}
}
}
sizeChartAsImage: function() {
html2canvas($("#size-chart").get(0)).then(canvas => {
canvas.toBlob (blob => {
var sizechartImg = document.createElement('img');
url = URL.createObjectURL(blob);
sizechartImg.src = url;
this.product.size_chart_image = sizechartImg;
debugger;
}, 'image/png');
})
}
Тем не менее,сначала выполняется вторая функция (сначала входит отладчик), а затем выполняется остальная часть кода;форма отправляется, и, наконец, sizeChartAsImage () выполняется, не вызывая эффекта (поскольку форма была отправлена с «size_chart_image», как ноль)
Это то, что я пытаюсь отрендерить, и это генерируетизображение.
<demo-grid
:data="data"
:columns="columns"
id="size-chart">
</demo-grid>
Может быть потому, что это компонент Vue?Проблемы с производительностью?Или мне нужно использовать обратный вызов, может быть?