3

我的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); 

回答

3

你需要定義變量:

var user = [{% for i in user %}{{ i }}{% if forloop.last %} {%else%} , {%endif%} {% endfor %}];

即值之間的陣列添加逗號

+0

我想''{{i}}'應該用引號括起來。 – 2014-07-24 10:58:32

2

使用django-jsonify。在您的模板中使用例如

var user = {{ user|jsonify }}; 

像魔術一樣。

相關問題