2013-05-06 98 views
0

JavaScript的新功能。尝试添加标记列表(从python)到谷歌地图。未捕获的参考错误:没有未定义

我生Jinja2的模板:

<head> 
<title>Google Map Test</title> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<style type="text/css"> 
    #map-canvas { height: 700px; width: 400px; } 
</style> 

<script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&sensor=false"> 
</script> 

<script type="text/javascript"> 
    var locations = {{ locations|safe }}; 

    /* 
    locations|safe results in the following line in my rendered template: 
    var locations = [['A.W. Hastings/Windows & Doors by Brownell', '44.4456', '-73.1276'], ['AARP', '44.4757', '-73.2113'], ['Adirondack Audiology', '44.4792', '-73.22'], ['Alchemy Jewelry Arts #1A', '44.4672', '-73.2147'], ['All Smiles Dental', '44.2334', '-72.5539']]; 
    */ 

    function initialize() { 
    var mapOptions = { 
     center: new google.maps.LatLng(43.953, -72.593), 
     zoom: 8, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map-canvas"), 
     mapOptions); 
    } 

    var infowindow = new google.maps.InfoWindow(); 

    var marker, i; 

for (var i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
     map: map 
    }); 

    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
     } 
    })(marker, i)); 
} 
</script> 

我送从我的观点列表“位置”,因为名单定期更换。

我正在接收未定位的参考误差,用于定义位置变量的那一行。全部输出是:

未捕获的ReferenceError:无没有定义127.0.0.1:14 (匿名功能)

+0

必须有一些代码引用一个未声明的标识符'None'才能生成该错误消息,但我在这里没有看到它。 – 2013-05-06 18:06:19

+0

@DaggNabbit这是从我的模板复制和粘贴。 – 2013-05-06 18:57:01

+0

*尽管渲染模板的输出被截断,并且在那里找到“无” – 2013-05-06 19:19:45

回答

1

移动下面的函数内部的功能initialize()代码,否则变量map不可用时和你访问它的地方。

0

我的“位置”模板标签有超过300个项目。为了简单起见,我截断了列表。这删除了问题的根源 - 违规的“无”。

我做了Molle博士推荐的更改,然后回去删除任何带有“None”的列表项目作为属性,并且所有工作都完美无缺。

相关问题