[英]How can i pass data from template in Django to Javascript in this specific case
我正在使用Google Map api,并且尝试将数据(经度和纬度)传递到模板,然后使用javascript中的数据显示特定位置。
location.html
{% for venue in property_listing %}
{{ venue.address }}</br>
<div id="long">{{ venue.longitude }}</br>
<div id="lat">{{ venue.latitude }}</br>
{% endfor %}
同一页面的javascript
<script>
var latitude = REPLACE HERE;
var longitude = REPLACE HERE;
// Initialize and add the map
function initMap() {
// The location of Uluru
var uluru = {lat: latitude, lng: longitude};
// The map, centered at Uluru
var map = new google.maps.Map(
document.getElementById('map'), {zoom: 15, center: uluru});
// The marker, positioned at Uluru
var marker = new google.maps.Marker({position: uluru, map: map});
}
</script>
我试图按字面值替换该值,但是它将无法工作。 解决此问题的最佳方法是什么?
首先,您将数据分配到div中 。 没有适当的value属性。 这是通过使用getAttribute()
方法解决的。
分配一个名为“值”的属性及其对应的数据:
location.html
{% for venue in property_listing %}
{{ venue.address }}</br>
<div id="long" value="{{ venue.longitude }}">{{ venue.longitude }}</br>
<div id="lat" value="{{ venue.latitude }}">{{ venue.latitude }}</br>
{% endfor %}
在您的javascript函数中,通过获取名为value的div id的属性来访问数据:
<script>
var latitude = document.getElementById('lat').getAttribute("value");
var longitude = document.getElementById('long').getAttribute("value");
// Initialize and add the map
function initMap() {
// The location of Uluru
var uluru = {lat: parseFloat(latitude), lng: parseFloat(longitude)};
// The map, centered at Uluru
var map = new google.maps.Map(
document.getElementById('map'), {zoom: 15, center: uluru});
// The marker, positioned at Uluru
var marker = new google.maps.Marker({position: uluru, map: map});
}
</script>
这应该可以解决问题:
<script>
var latitude = {{ venue.latitude }};
var longitude = {{ venue.longitude }};
// Initialize and add the map
function initMap() {
// The location of Uluru
var uluru = {lat: latitude, lng: longitude};
// The map, centered at Uluru
var map = new google.maps.Map(
document.getElementById('map'), {zoom: 15, center: uluru});
// The marker, positioned at Uluru
var marker = new google.maps.Marker({position: uluru, map: map});
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.