1 回答
TA贡献1900条经验 获得超5个赞
问题一:global范围:
这是+-您的代码大纲(您每次运行函数并且只更改了原始的personvar new 对象指针->这就是您的代码仅创建一个“人”(或图表)的原因。
var person;
function hello(){
person = new Object();
person.firstName = 'testFirstName';
person.lastName = 'testLastName';
}
hello();
function hello2(){
person = new Object();
person.firstName = 'test_2_FirstName';
person.lastName = 'test_2_LastName';
}
hello2();
console.log(person.firstName); /*return test_2_FirstName */
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var
问题二:多个数据集 = 数据集数组
很难准确理解您的问题(请添加一个最小的可重现示例)。 https://stackoverflow.com/help/minimal-reproducible-example
无论如何,这是hello world最基本的示例(在单击和隐藏按钮上添加一个数据集)。
var data = {
labels: ["Africa", "Asia", "Europe", "America"],
datasets: [
{
/* data */
label: "Dataset1 (millions)",
backgroundColor: ["#490A3D", "#BD1550","#E97F02", '#F8CA00'],
data: [1000,1500,2000, 2200]
}
]
};
var options = {
scales: {
xAxes: [{
stacked: false
}],
yAxes: [{
stacked: false
}]
}
};
var myChart = new Chart(document.getElementById("chart"), {
type: 'bar',
data: data,
options: options
});
var add_this_dataset_on_click = {
/* data */
label: "Dataset2 (millions)",
backgroundColor: ["purple", "magenta","orange", 'yellow'],
data: [500,750,1000, 1100]
}
function addData() {
myChart.data.datasets.push(add_this_dataset_on_click);
myChart.update();
document.getElementById("btn").style.display = "none";
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<button id="btn" onclick="addData()">Add dataset</button>
<canvas id="chart"></canvas>
她更复杂的例子:https ://www.chartjs.org/samples/latest/
相关文档:https ://www.chartjs.org/docs/latest/developers/updates.html
我的建议。从“hello world”示例开始(没有 PHP 和动态数据)。
添加回答
举报