Невозможно получить доступ к переменной из области видимости функции
У меня есть этот скрипт для создания карт google с шаблоном маркеров внутри моего проекта 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>
Но он не видит переменную id
внутри функции addListener
. А если я помещаю переменную внутрь функции, то она не видит переменную vehicles
. Что я делаю не так?
Разобрался:
const id = vehicles[i]['truck']
const url = "{% url 'invent:truck' 1234 %}".replace(/1234/, id.toString());
marker.addListener("click", () => {
window.location = url
});