Как добавить ссылку на маркер, используя гем gmaps4rails - PullRequest
0 голосов
/ 29 июля 2011

Я хотел бы добавить маркер со ссылкой в ​​маркер, поэтому, когда я нажму на этот маркер, я перенаправлю на другую страницу

Кто-нибудь знает, как это сделать?

Спасибо


Я уже добавил свой код так:

В контроллере:

@json = @businesses.results.to_gmaps4rails do |object|
  "\"link\": \"#{root_url}\""
end

В поле зрения:

  <%= gmaps4rails(@json) %>
  <% content_for :scripts do %>
    <script type="text/javascript">
      function redirect_to(url) {
        window.location = url;
      };
      Gmaps4Rails.callback = function() {
        function say_yo(arg) { return function(){alert('yo '+ arg + '!' );};};
        for (var i = 0; i <  Gmaps4Rails.markers.length; ++i) {
          google.maps.event.addListener(Gmaps4Rails.markers[i].google_object, 'click', redirect_to(Gmaps4Rails.markers[i].link));
        }
      }
    </script>
  <% end %>

Что-то не так??потому что есть только информационное окно, которое отображается после того, как я нажал на маркер (не перенаправлять на любую страницу)

enter image description here

1 Ответ

2 голосов
/ 29 июля 2011

Сначала включите ссылку внутри json:

Model.all.to_gmaps4rails do |object|
  "\"link\": \"your link as string\""
end

Затем добавьте дополнительных слушателей в ваше представление (будьте осторожны, чтобы включить это ПОСЛЕ вашего вызова в метод gmaps):

<%= gmaps(whatever you need here) %>

<% content_for :scripts do %>
<script type="text/javascript">
function redirect_to(url) {
  window.location = url;
};
Gmaps4Rails.callback = function() { 
  function say_yo(arg) { return function(){alert('yo '+ arg + '!' );};};
    for (var i = 0; i <  Gmaps4Rails.markers.length; ++i) {
      google.maps.event.addListener(Gmaps4Rails.markers[i].google_object, 'click', redirect_to(Gmaps4Rails.markers[i].link));
    }
}
</script>
<% end %>
...