#jquery #ruby-on-rails #ruby-on-rails-3 #google-maps
#jquery #ruby-on-rails #ruby-on-rails-3 #google-карты
Вопрос:
Поэтому я отправляю некоторые параметры на мой контроллер (через ajax), чтобы получить некоторые записи, а затем отображаю результаты с помощью javascript, загружая частичное. В частичном я перебираю массив извлеченных записей и отображаю каждую, но я также пытаюсь вызвать функцию javascript в теге head моей страницы и передать данные из моего массива.
Но вызов javascript не работает, фактически, когда я использую firebug для просмотра страницы, javascript там даже нет.
По сути, я пытаюсь обновить карту Google с помощью полученной информации.
Вот мой частичный рендеринг:
<ol class="shop_list">
<% @shops.each do |s| %>
<script type="text/javascript">
shopMarker(<%= s.latLng %>); //This would be a comma separated string containing latitude and longitude
</script>
<li><%= link_to s.shop_name ,"#" %></li>
<% end %>
</ol>
Вот jquery, вызывающий частичный, когда контроллер отвечает на JS:
$("#shop_results").html("<%= escape_javascript(render("shop_results")) %>");
и вот функция, которую я вызываю в заголовке:
function shopMarker(latLng){
var marker = new google.maps.Marker({
map: map,
position:latLng
});
map.setCenter(latLng);
}
Чего мне не хватает?
Комментарии:
1. Ваша
shopMarker
функция не имеет смысла. Вы определяетеdescription
, не используя его.2. Вы должны добавить более релевантный код, прежде чем кто-либо сможет ответить на ваш вопрос. По крайней мере, добавьте ссылку на сгенерированный HTML.
3. убрал это. несмотря на это, маркеры карты не отображаются, и это должно быть правильно? Разве мне просто не нужно определить маркер карты?
4. ну вот, возникли небольшие проблемы с форматированием отображаемого частичного
Ответ №1:
Не могли бы вы опубликовать свой ответ контроллера и ссылку / форму, которые вы используете для отображения результатов магазина в первую очередь?
Ваш контроллер должен выглядеть примерно так:
respond_to do |format|
format.js
end
Ваш ответ должен быть вызван action_name_here.js.erb
.
Наконец, по умолчанию при запросе XHR ваш первоначальный вызов контроллера должен использовать ответ JS, но можете ли вы подтвердить, посмотрев в своих журналах, что он говорит ... responding with JS
«формат?