几天来,我一直在努力完成这项工作,这是我的最后一次尝试。
对于发布具有相似目标的不同问题,我深表歉意。
我只是想用最好的方法弄清楚。
事情是这样的;我在另一个页面中有一些数据要在我的初始化函数中使用。
这里的一位成员建议我使用 deferred.done。
它部分工作。我在其他页面中的数据已加载,如果我有警报(MapData),我可以显示它;在初始化函数中。
但是当我尝试在初始化函数中使用该数据进行实际工作时,我得到MapData.users is undefined错误。
我不明白,因为当我加载到警报框中时它看起来很好。
请建议!
$(function CheckinMap() {
$.when($.ajax({
type: "GET",
url: "content/home/index.cs.asp?Process=ViewCheckinMap"
})).done( function initialize(data) {
var MapData = data;
var center = new google.maps.LatLng(48.404840395764175, 2.6845264434814453);
var map = new google.maps.Map(document.getElementById('checkinmap'), {
zoom: 2,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP,
maxZoom: 4
});
var markers = [];
for (var i = 0; i < MapData.users.length; i++) {
var location = MapData.users[i];
var latLng = new google.maps.LatLng(location.latitude,
location.longitude);
var marker = new google.maps.Marker({
position: latLng
});
markers.push(marker);
}
var markerCluster = new MarkerClusterer(map, markers);
});
});
这是我需要在初始化函数中使用的数据。
{
"users": [
{
"latitude": "48.405163",
"longitude": "2.684659"
},
{
"latitude": "43.7347242529278",
"longitude": "7.42198348045349"
}
]
};