Я пытаюсь динамически изменять маркеры в Gmaps4Rails на основе формы поиска пользователя. Я использую код ниже.
Проблема, с которой я сталкиваюсь, заключается в том, что вызов Gmaps.map.replaceMarkers внутри $('#locations_search').submit дает ошибку: Gmaps.map не определен.
Я проверил с помощью отладчика javascript, и действительно, как только я вхожу в функцию отправки (у меня там есть точка останова), Gmaps.map не определен. При остановке с точкой останова в первых строках Gmaps.map.callback определяется объект Gmaps.map.
Наверное, я что-то упускаю. Кажется, здесь какая-то проблема с переменной областью?
Gmaps.map.callback = function() {
var firstMarker = Gmaps.map.markers[0];
var map = Gmaps.map.map;
firstMarker.infowindow.open(map, firstMarker.serviceObject);
$('#locations_search').submit(function () {
var url = '/locations.json/?' + $(this).serialize();
$.getJSON(url, function(data){
Gmaps.map.replaceMarkers(data);
});
$.get(this.action, $(this).serialize(), null, 'script');
return false;
});
}
Большое спасибо!