Есть ли альтернатива использованию Gmaps.loadMaps при загрузке HTML / JS, содержащей Gmaps4Rails через AJAX? - PullRequest
1 голос
/ 14 сентября 2011

Я использую Gmap4Rails в теле формы, которая загружается через Ajax. В форме есть настраиваемые поля, и некоторые из них могут быть средствами выбора местоположения, которые я использую для не-Ajax-версии формы.

В версии формы Ajax я получаю неопределенные ошибки "Gmaps.my_map_id".

В не-Ajax-версии формы я вызываю Gmaps.loadMaps через JavaScript в заголовке страницы HTML для «window.onload», как это обычно делается в Gmaps4Rails.

Однако, это не будет работать в контексте Ajax, так как карты не были определены во время window.onload.

В моей форме я также определяю обратный вызов для каждого объекта карты Gmaps. Это то, что кажется ошибочным из-за ошибки «undefined», даже когда я делаю «Gmaps.loadMaps ();» сценария непосредственно перед тем, как первый код обратного вызова определен в коде, который загружается Ajax.

В основном это выглядит так в следующем порядке:

  1. в цикле вызывается частичное gmaps4rails для вывода каждого пользовательского поля карты
  2. после завершения этого цикла Gmaps.loadMaps () вызывается один раз
  3. в другом цикле, для каждого объекта карты Gmaps добавлен JS для его обратного вызова

Любые предложения о том, как заставить это работать?

1 Ответ

1 голос
/ 14 сентября 2011

ОБНОВЛЕНИЕ: возможно, только частично правильно (т.е. у меня была проблема, которая была изложена здесь, но вызов Gmaps.loadMaps () все еще не работает).

2-е обновление: мне пришлось изменить определение загрузки _... для объекта Gmaps, а затем соответственно изменить функцию Gmaps.loadMaps. Я поместил в проект запрос на https://github.com/apneadiving/Google-Maps-for-Rails/pull/94.


Вызов Gmaps.loadMaps () не был проблемой. Таким образом, альтернатива не нужна. Меня сбило с толку то, что в частичном enable_js вызывался как false, а JavaScript, который объявляет новый экземпляр Gmaps4RailsGoogle и функцию для его загрузки, не вызывался.

У меня есть пользовательская версия частичной версии, и в моем случае, даже если enable_js (я интерпретирую как «не загружать файлы библиотеки javascript» для моего приложения) ложно, я все еще использую JavaScript, который объявляет новый экземпляр Gmaps4RailsGoogle и определяет функцию загрузки _....

При этом, функция загрузки _..., похоже, не работает для меня. В моем случае возвращается следующее:

TypeError: 'undefined' не является функцией (оценивает 'window "load_" + key')

Когда я вызываю функцию load _... непосредственно из консоли (а не из вызова Gmaps.loadMaps), я получаю похожую ошибку:

"'undefined' is not a function (evaluating 'this.load_...()')"

Возможно, это связано с отсутствием каких-либо заявленных маркеров? Любые намеки на эту проблему приветствуются.

Если я пошагово выполняю шаги в функции load ..., первый бит, который выдает ошибку, - это .initialize (). Все еще расследую.

...