Мой частичный рендеринг jquery не запускает javascript внутри

#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 «формат?