Javascript 使用$.Ajax(JQuery)为全局变量赋值
我正在创建新的功能,其中我基于从Ajax返回的Json数据构建了一个网格。我已经决定将此功能封装在函数中,因此当我添加/更新/删除时,我可以成功地检索数据的新表示形式 我遇到的问题是,我想填充一个全局数组,但一旦使用AJAX的函数结束,我就有了一个数组,但没有数据。当所有代码都在AJAX调用中时,这不是问题,但一旦我尝试将其分离到自己的函数中,它就不能按预期工作Javascript 使用$.Ajax(JQuery)为全局变量赋值,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在创建新的功能,其中我基于从Ajax返回的Json数据构建了一个网格。我已经决定将此功能封装在函数中,因此当我添加/更新/删除时,我可以成功地检索数据的新表示形式 我遇到的问题是,我想填充一个全局数组,但一旦使用AJAX的函数结束,我就有了一个数组,但没有数据。当所有代码都在AJAX调用中时,这不是问题,但一旦我尝试将其分离到自己的函数中,它就不能按预期工作 <script type="text/javascript"> var DataArray = [];
<script type="text/javascript">
var DataArray = [];
// Use this function to fill array
function retrieveNotes() {
$.ajax({
url: "http://wks52025:82/WcfDataService.svc/GetNotesFromView()?$format=json",
type: "get",
datatype: "json",
asynch:true,
success: function (data) {
returnedData = data;
$.each(data.d, function (i, item) {
DataArray[i] = [];
DataArray[i][0] = item.NotesTitle.trim();
DataArray[i][1] = item.ProfileName.trim();
DataArray[i][2] = item.IsShared;
DataArray[i][3] = item.NameOfUser.trim();
}) // End of each loop
}
});
}
$(document).ready(function () {
retrieveNotes();
DataArray;
</script>
var DataArray=[];
//使用此函数填充数组
函数retrieveNotes(){
$.ajax({
url:“http://wks52025:82/WcfDataService.svc/GetNotesFromView()?$format=json“,
键入:“获取”,
数据类型:“json”,
asynch:true,
成功:功能(数据){
返回数据=数据;
$.each(data.d,function(i,item){
数据数组[i]=[];
DataArray[i][0]=item.notestile.trim();
DataArray[i][1]=item.ProfileName.trim();
DataArray[i][2]=item.IsShared;
DataArray[i][3]=item.NameOfUser.trim();
})//每个循环的结束
}
});
}
$(文档).ready(函数(){
retrieveNotes();
数据阵列;
它是异步的,因此您必须等待ajax调用完成,然后才能使用数据:
function retrieveNotes() {
return $.ajax({
url: "http://wks52025:82/WcfDataService.svc/GetNotesFromView()?$format=json",
type: "get",
datatype: "json"
});
}
$(document).ready(function () {
retrieveNotes().done(function(data) {
var DataArray = [];
$.each(data.d, function (i, item) {
DataArray[i] = [];
DataArray[i][0] = item.NotesTitle.trim();
DataArray[i][1] = item.ProfileName.trim();
DataArray[i][2] = item.IsShared;
DataArray[i][3] = item.NameOfUser.trim();
});
// you can only use the data inside the done() handler,
// when the call has completed and the data is returned
});
});
它是异步的,因此您必须等待ajax调用完成后才能使用数据:
function retrieveNotes() {
return $.ajax({
url: "http://wks52025:82/WcfDataService.svc/GetNotesFromView()?$format=json",
type: "get",
datatype: "json"
});
}
$(document).ready(function () {
retrieveNotes().done(function(data) {
var DataArray = [];
$.each(data.d, function (i, item) {
DataArray[i] = [];
DataArray[i][0] = item.NotesTitle.trim();
DataArray[i][1] = item.ProfileName.trim();
DataArray[i][2] = item.IsShared;
DataArray[i][3] = item.NameOfUser.trim();
});
// you can only use the data inside the done() handler,
// when the call has completed and the data is returned
});
});
1.
asynch:true,
--async
2.阅读jquery文档中的含义这是因为ajax是异步的,所以在此处搜索ajax回调键入:$(文档)。就绪(函数(){retrieveNotes();DataArray;1.asynch:true,
--async
2.阅读jquery文档中的含义这是因为ajax是异步的,请在此处搜索ajax回调键入:$(文档).ready(函数(){retrieveNotes();DataArray;@adeneo我将尝试您的解决方案。@adeneo我将尝试您的解决方案。