Javascript 另一个内部的自动执行函数
这是我的密码。myArraysValues函数如何自动执行? 它是针对ChartJS SalesChart的。 当添加一个alertMyValues时,它会工作,如果我使用它,它不会工作Javascript 另一个内部的自动执行函数,javascript,Javascript,这是我的密码。myArraysValues函数如何自动执行? 它是针对ChartJS SalesChart的。 当添加一个alertMyValues时,它会工作,如果我使用它,它不会工作 谢谢我不确定您所说的“自动执行”是什么意思,如果您想在页面加载时执行它,您可以在document ready事件中调用自定义代码/方法。但是请确保执行代码在ajax成功处理程序中呈现图表,因为异步调用中的数据将在该处理程序中可用,并且您可以安全地访问该处理程序 'use strict'; $(function
谢谢我不确定您所说的“自动执行”是什么意思,如果您想在页面加载时执行它,您可以在document ready事件中调用自定义代码/方法。但是请确保执行代码在ajax成功处理程序中呈现图表,因为异步调用中的数据将在该处理程序中可用,并且您可以安全地访问该处理程序
'use strict';
$(function () {
var MyValues = []; //--> for Data
function myArraysValues() {
$.ajax({
url: '/AdminLte/TestArray',
type: 'Get',
dataType: 'json',
data: { test: 'Client_Call' },
success: function (data) {
for (var i = 0; i < 8; i++) {
MyValues.push(data[i]);
}
},
error: function (data) {
alert("error");
},
})
return MyValues;
}
});
//alert(MyValues);
var salesChartData = {
labels: MyLabels,
datasets: [
{
label: "Erledigt",
fillColor: "rgb(0, 102, 0)",
strokeColor: "rgb(0, 102, 0)",
pointColor: "rgb(0, 102, 0)",
pointStrokeColor: "#66ff33",
pointHighlightFill: "#66ff33",
pointHighlightStroke: "rgb((0, 102, 0)",
data: MyValues
},
另外,看起来您已经硬编码执行了循环以运行8次。我希望来自服务器的数据是一个至少包含8项的数组,这样您的代码就不会崩溃。异步代码的工作方式稍有不同。}在结束之前,调用函数:$function{function myFunc{…}myFunc;不确定这里的问题。你说的自动执行是什么意思?你在哪里尝试执行它?你在哪里都不能调用该函数。@David我想这就是问题所在。不过,不要引用我的话!@David在页面加载后自动执行myArraysValues它不会崩溃。它实际上只有在我调用MyValues时才起作用函数本身.ajax之后的警报是异步的。因此,当响应可用时,在成功事件中使用它。
$(function () {
getDataFromServerAndRenderChart();
});
function getDataFromServerAndRenderChart()
{
$.ajax({
url: '/AdminLte/TestArray',
type: 'Get',
dataType: 'json',
data: { test: 'Client_Call' },
success: function (data) {
var myValues=[];
for (var i = 0; i < 8; i++) {
myValues.push(data[i]);
}
// use myValues array to initialize the chart HERE
}
})
}