在函数内部访问变量
Accessing vars inside functions
在下面的代码中:
var pie = [];
function makeChart() {
new Chart(document.getElementById("canvas").getContext("2d")).Doughnut(
pie);
};
var data = jQuery.getJSON('xxx', function(data) {
pie = [{
value: data.company_live_ads,
color: "#F7464A"
}, {
value: data.total_candidates,
color: "#46BFBD"
}, {
value: data.company_ads_published_3days,
color: "#FDB45C"
}, {
value: data.company_apps_today,
color: "#4D5360"
}];
makeChart();
});
饼图变量在 JSON 函数中更新。然后调用 makeChart 函数。如果我将 console.log(pie) 放入 makeChart() 中,它会向我打印带有数字的数组 Pie 。但是,出于某种原因,它不会将此 var 传递到制作图表的函数中。此外,如果我在这个函数中放入一个带有虚拟数据的饼图,它会生成图表。
我认为这一定与范围有关,但我有点迷茫。任何帮助将不胜感激。
JSON 将数字作为字符串传递,因此硬编码值起作用的原因。使用 parseInt() 更改为生成的数字和图表。
在下面的代码中:
var pie = [];
function makeChart() {
new Chart(document.getElementById("canvas").getContext("2d")).Doughnut(
pie);
};
var data = jQuery.getJSON('xxx', function(data) {
pie = [{
value: data.company_live_ads,
color: "#F7464A"
}, {
value: data.total_candidates,
color: "#46BFBD"
}, {
value: data.company_ads_published_3days,
color: "#FDB45C"
}, {
value: data.company_apps_today,
color: "#4D5360"
}];
makeChart();
});
饼图变量在 JSON 函数中更新。然后调用 makeChart 函数。如果我将 console.log(pie) 放入 makeChart() 中,它会向我打印带有数字的数组 Pie 。但是,出于某种原因,它不会将此 var 传递到制作图表的函数中。此外,如果我在这个函数中放入一个带有虚拟数据的饼图,它会生成图表。
我认为这一定与范围有关,但我有点迷茫。任何帮助将不胜感激。
JSON 将数字作为字符串传递,因此硬编码值起作用的原因。使用 parseInt() 更改为生成的数字和图表。