1

几天来,我一直在努力完成这项工作,这是我的最后一次尝试。

对于发布具有相似目标的不同问题,我深表歉意。

我只是想用最好的方法弄清楚。

事情是这样的;我在另一个页面中有一些数据要在我的初始化函数中使用。

这里的一位成员建议我使用 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"
    }
  ]
};
4

1 回答 1

0

您没有dataType: 'json'$.ajax()通话中指定;这可能会导致您data成为原始文本 JSON 响应,而不是解码对象。

于 2012-06-04T14:40:16.057 回答