作者:qqq | 来源:互联网 | 2023-01-27 17:33
我正在刷新下拉列表中的条形图。我只是想知道我是否以正确的方式进行操作。每当我用代码替换现有画布时,都用新画布替换。有没有更好的方法来实现同一目标?
我的JS代码:
var chart_= function () {
$('#canvas_id').replaceWith('');
$.ajax({
type: 'POST', //post method
url: 'url', //ajaxformexample url
dataType: "json",
success: function (result, textStatus, jqXHR)
{
// GENERATE CHART DATA
var labels = result.obj.map(function (e) {
return e.label;
});
var data = result.obj.map(function (e) {
return e.data;
});
new Chart($("#canvas_id"), {
type: 'bar',
options: options_object,
data: {
labels: labels,
datasets: [
{
label: "",
backgroundColor: '#00c0ef',
data: data
}
]
}
});
}
});
};
John Townsen..
5
绝对有更好的方法,我一直在使用Chart.js实时更新图表,而要完成所需的一种好方法是使用最初预定义的某些设置声明图表。
var chart = new Chart( canvas, {
type: "bar",
data: {}
options: {}
}
这样,每当需要更新图表时,只需访问已存在的图表即可。并将数据更新为从ajax调用中获取的数据,并使用chart.update()方法,以便可以继续使用预先存在的画布
$.ajax({
type: 'POST', //post method
url: 'url', //ajaxformexample url
dataType: "json",
success: function (result, textStatus, jqXHR)
{
chart.data = result;
chart.update();
}
});
希望这可以帮助!
1> John Townsen..:
绝对有更好的方法,我一直在使用Chart.js实时更新图表,而要完成所需的一种好方法是使用最初预定义的某些设置声明图表。
var chart = new Chart( canvas, {
type: "bar",
data: {}
options: {}
}
这样,每当需要更新图表时,只需访问已存在的图表即可。并将数据更新为从ajax调用中获取的数据,并使用chart.update()方法,以便可以继续使用预先存在的画布
$.ajax({
type: 'POST', //post method
url: 'url', //ajaxformexample url
dataType: "json",
success: function (result, textStatus, jqXHR)
{
chart.data = result;
chart.update();
}
});
希望这可以帮助!