Я не могу заставить свое геокодирование работать на одной из моих страниц jsp. Он работает в другом, но это вызывает проблемы.Uncaught TypeError: Невозможно прочитать «геокод» свойства undefined
У меня есть base.jsp, который является общим для всех моих страниц jsp. который имеет:
var geocoder;
$(document).ready(function initialize() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
center : { lat : 56.138, lng : 8.967 },
zoom : 7,
disableDoubleClickZoom : true
});
geocoder = new google.maps.Geocoder();
});
function addressTolatlng(address){
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
var myLatlng = new google.maps.LatLng(latitude, longitude);
console.log(myLatlng);
}
});
}
Это моя страница JSP, которая дает ошибку:
$(document).ready(function() {
console.log(input);
var input = document.getElementById('addressField');
var autocomplete = new google.maps.places.Autocomplete(input, {
types: ["geocode"]
});
autocomplete.bindTo('bounds', map);
});
<input type="text" placeholder="address" name="address" id="addressField" class="form-control" aria-label="..." value="">
<script>
$("#addressField").keyup(function() {
var address = document.getElementById('addressField').value;
addressTolatlng(address);
});
</script>
Я получаю неперехваченный TypeError: Не удается прочитать свойство «геокодирования» неопределенных при выполнении этого. Но у меня есть еще одна страница с одинаковой настройкой, и там она работает отлично, поэтому для меня это странно, как этот человек не будет вести себя одинаково.
консоль также дает следующие:
(anonymous function) @ eventHandler?action=createEvent:790
m.event.dispatch @ jquery-1.11.3.min.js:4
r.handle @ jquery-1.11.3.min.js:4
У меня есть много импорта сценария, который для меня является единственным различием на страницах. Может ли это вызвать проблему?
У вас есть анонимная функция, и геокод определен за ее пределами, поэтому он не будет распознан внутри него. Значение будет возвращено как неопределенное. –
Я вижу, что консоль также дает намек на анонимную функцию. Но это работает на другой странице, почему это не будет работать здесь? – JonCode
В основном то же, что я сказал, даниал объяснил. Вы должны понимать, что если вы хотите передать переменные в функцию, она должна быть установлена в параметрах этой функции. например: 'function your_function ($ a, $ b, $ c) {console.log ($ a); //