Tengo este script para crear mapas de Google con una plantilla de marcadores dentro de mi proyecto Django:
<script> function initMap() { const shop = { lat: 45.0203018, lng: -88.318316 }; const map = new google.maps.Map( document.getElementById("map"), { zoom: 10, center: shop, }); const vehicles = {{ vehicles|safe }}; for(i = 0; i < vehicles.length; i++){ const pos = new google.maps.LatLng(vehicles[i]['lat'],vehicles[i]['lon']); const marker = new google.maps.Marker({ position: pos, map: map, label: vehicles[i]['number'], }); const id = vehicles[i]['truck'] marker.addListener("click", () => { console.log(id) window.location = "{% url 'invent:truck' id %}"; }); }; }; window.initMap = initMap; </script> Pero no ve la id de la variable dentro de la función addListener . Y si pongo la variable dentro de la función no ve la variable vehicles . ¿Qué estoy haciendo mal?
Lo averigué:
const id = vehicles[i]['truck'] const url = "{% url 'invent:truck' 1234 %}".replace(/1234/, id.toString()); marker.addListener("click", () => { window.location = url });