我的views.py中有以下extra_context
。如何通過Django變量作爲javascript方法參數?
extra_context = {
'user': list_user,
'time': str(list_time),
'latlng': list_latlng
}
以上所有變量均爲python list
的數據類型。現在我想在Gmap v3 javascript中使用這些變量。我發現的谷歌地圖上下面的代碼片斷:(張貼的主要部分)
<script type="text/javascript">
var map ;
function initialize() {
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 2,
center: latlng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var flightPlanCoordinates = [ {% for ip in latlng %}{{ ip }}{% endfor %}];
for(var i in flightPlanCoordinates){
var marker = add_marker(flightPlanCoordinates[i][0], flightPlanCoordinates[i][1],"Some title!","html for info box");
marker.setMap(map);
}
}
function add_marker(lat,lng,title,box_html) {
var infowindow = new google.maps.InfoWindow({
content: box_html
});
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat,lng),
map: map,
title: title
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
return marker;
}
上面的代碼顯示一個標記accoriding從上下文傳遞的latlng
列表。但問題發生在那個時候,我也嘗試以相同的方式通過time and user
。它在地圖上沒有顯示任何內容。順便說一句,我試着用這個詞:
var user = [{% for i in user %}{{ i }}{% endfor %}];
var timestamp = [{% for y in time %}{{ y }}{% endfor %}];
這是正確的方法嗎?我是JavaScript中的新成員,根據代碼latlng
寫道。我試過alert(timestamp)
。什麼也沒有發生:(
另一個問題是我必須通過這三個參數add_marker
Java腳本方法,爲此,我必須同時運行三個for循環發佈的僞代碼:。
var user = [{% for i in user %}{{ i }}{% endfor %}];
var timestamp = [{% for y in time %}{{ y }}{% endfor %}];
var flightPlanCoordinates = [ {% for ip in latlng %}{{ ip }}{% endfor %}];
for (var in flightPlanCoordinates) and for (a in timestamp) and for(b in user)
{
var marker = add_marker(flightPlanCoordinates[i][0], flightPlanCoordinates[i][1],b,a);
marker.setMap(map);
我想''{{i}}'應該用引號括起來。 – 2014-07-24 10:58:32