![](/img/trans.png)
[英]Chart.js update function (chart,labels,data) will not update the chart
[英]Update chart in Chart js
import Chart from "chart.js"
let AnalyticsChart = {
buildChart() {
let ctx = document.getElementById("analyticsChart");
let labels = ["sent", "delivered", "undelivered", "clicks"];
let total_sent = parseInt(document.getElementById("total-sent").dataset.totalSent);
let delivered = parseInt(document.getElementById("deilvered-count").dataset.deliveredCount);
let undelivered = parseInt(document.getElementById("undelivered-count").dataset.undeliveredCount);
let clicks = parseInt(document.getElementById("total-clicks").dataset.totalClicks);
let counts = [total_sent, delivered, undelivered, clicks]
let chart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: labels,
datasets: [{
data: counts,
backgroundColor: [
'rgba(54, 162, 235, 0.5)',
'rgba(255, 206, 86, 0.5)',
'rgba(255, 99, 132, 0.5)',
'rgba(75, 192, 192, 0.5)'
]
}]
},
options: {
}
});
},
update(){
}
}
export default AnalyticsChart
在這段代碼中,我想添加更新功能以更新圖表。 我想通過圖表變量來更新功能,我該怎么做?
像這樣
update(chart) {
let total_sent = parseInt(document.getElementById("total-sent").dataset.totalSent);
let delivered = parseInt(document.getElementById("deilvered-count").dataset.deliveredCount);
let undelivered = parseInt(document.getElementById("undelivered-count").dataset.undeliveredCount);
let clicks = parseInt(document.getElementById("total-clicks").dataset.totalClicks);
let counts = [total_sent, delivered, undelivered, clicks]
chart.data.datasets.forEach((dataset) => {
dataset.data.push(counts) # How can I put individual counts value?
});
chart.update();
}
我的問題1.如何在buildChart()中傳遞圖表變量以將函數更新為參數。 2.如何將單個counts元素放入dataset.data.push(counts)?
我不熟悉您的實施方式。 但似乎像Java,所以你需要的成員變量,並使用訪問它們this
從每個功能。
let AnalyticsChart = {
chart: null,
buildChart() {
/** omit **/
this.chart = new Chart(ctx, {
~
update() {
/** omit **/
this.chart.update();
對不起,我不太了解這個問題。
您是否要推送數據而不是更新? 如果是這樣,您不能僅准備值。 (我的意思是,您需要標簽,背景...)
如果您只想更新圖表,那只是小菜一碟
this.chart.data.datasets.forEach((dataset) => {
dataset.data = counts;
});
請記住,您只有一個數據集。 如果數據集不是動態的,我認為沒有必要循環。
this.chart.data.datasets[0].data = counts;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.