2012-05-29 6 views
2

Я получаю gmaps4rails, работающие над моим проектом, но я изо всех сил пытаюсь настроить аспект информационного окна. Я следил за учебником, найденным в wiki, и я понимаю большую часть его, кроме части обратного вызова для InfoBox, которая немного запутывает меня, неопытного программиста JS. Когда я нажимаю на маркер, я получаю только кнопку «x» (закрыть), но текст не отображается или не отображается как ожидалось. Вот мой код:Gmaps4Rails Custom InfoWindow

В post.rb:

def gmaps4rails_infowindow 
    # add here whatever html content you desire, it will be displayed when users clicks on the marker 
    "<h4>#{self.title}</h4>" 
end 

В posts.js.coffee:

Gmaps.map.infobox = (boxText) -> 
    content: boxText 
    disableAutoPan: false 
    maxWidth: 0 
    pixelOffset: new google.maps.Size(-140, 0) 
    zIndex: null 
    boxStyle: 
    background: "url('http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/examples/tipbox.gif') no-repeat" 
    opacity: 0.75 
    width: "280px" 

    closeBoxMargin: "10px 2px 2px 2px" 
    closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif" 
    infoBoxClearance: new google.maps.Size(1, 1) 
    isHidden: false 
    pane: "floatPane" 
    enableEventPropagation: false 

В gmaps4rails.css

.yellow { border: 1px solid black; margin-top: 8px; background: yellow; padding: 5px; } 

На мой взгляд:

= gmaps("markers" => {"data" => @json, "options" => {"custom_infowindow_class" => "yellow" } }) 

Я был бы очень признателен, если бы кто-то мог указать мне в правильном направлении, так как это мой первый раз, работая с картами. Заранее спасибо!

EDIT:

Мои результаты:

http://postimage.org/image/45feoz3kl/

EDIT 2:

Я не хочу ругать вас, но как только я понимаю, что происходит у меня будет хорошо на мой собственный, пока это просто худшее. Теперь он даже не отображается, и я получаю кучу ошибок. Это мой код:

= gmaps("markers" => {"data" => @json, "options" => {"custom_infowindow_class" => "yellow" } }) 
- content_for :scripts 
    :javascript 
    Gmaps.map.infobox = function(boxText) { 
     return { 
     content: boxText 
     ,disableAutoPan: false 
     ,maxWidth: 0 
     ,pixelOffset: new google.maps.Size(-140, 0) 
     ,zIndex: null 
     ,boxStyle: { 
      background: "url('http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/examples/tipbox.gif') no-repeat" 
      ,opacity: 0.75 
      ,width: "280px" 
      } 
     ,closeBoxMargin: "10px 2px 2px 2px" 
     ,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif" 
     ,infoBoxClearance: new google.maps.Size(1, 1) 
     ,isHidden: false 
     ,pane: "floatPane" 
     ,enableEventPropagation: false 
    }}; 

Ошибка:

"неожиданный keyword_ensure, ожидая $ закончить" в строке оператора возврата.

+0

Кажется хорошо. В прошлый раз, когда я видел эту проблему, это было связано с css. – apneadiving

+0

Благодарим вас за ответ. К сожалению, я не могу найти проблему. Мои файлы, как показано выше, не работают. У вас есть рабочий пример по сути, который вы могли бы поделиться? Еще раз, спасибо. EDIT: я проверил css, и он отлично работает, когда применяется к другим блокам, поэтому я не думаю, что это проблема css. –

+0

У вас есть видимый url для этой страницы? – apneadiving

ответ

4

После нескольких замечаний, я, наконец, понять (даже это было очевидно после того, как все ...):

Gmaps.map создается на лету, когда страница загружена. Поэтому всякий раз, когда вы хотите добавить недвижимость к этому объекту, вы должны добавить послеgmaps позвонить и в content_for :scripts.

в вашем коде:

= gmaps() 

- content_for :scripts do 
    :javascript 
    Gmaps.map.infobox = function(.... 
+0

Прошу прощения за мою некомпетентность, но я не настолько опытен, поэтому я действительно не понимаю, что вы имеете в виду. Не могли бы вы рассказать немного больше? Спасибо! –

+0

Благодарим вас за руководство, но не могли бы вы в последний раз проверить мой оригинальный пост? Еще раз спасибо! –

+0

только что отредактировал мой ответ, забыли 'do' – apneadiving

Смежные вопросы