2016-03-22 10 views
2

Rails uygulamasında Pjax ve Google Map uygulamasını uygulamak istiyorum ve JavaScript kodlarımın yüklenmesiyle ilgili bir sorunum var.Pjax ve belirli bir sayfada JavaScript'i yeniden yükleme

My düzen/application.html.erb şu şekildedir:

<div id="map" style="width: 100%; height: 300px;"></div> 

<% content_for(:after_js) do %> 
    <%= javascript_tag do %> 

    $(document).on('ready', function() { 
     handler = Gmaps.build('Google'); 
     handler.buildMap({ internal: { id: 'map' } }, function(){ 
     markers = handler.addMarkers(<%= raw @markers.to_json %>); 
     handler.bounds.extendWith(markers); 
     handler.fitMapToBounds(); 
     }); 
    }) 
    <% end %> 
<% end %> 

@markers:

<body> 
    <%= render 'shared/navbar' %> 
    <%= render 'shared/flashes' %> 
    <div id="pjax-container"> 
    <%= yield %> 
    </div> 
    <%= render 'shared/footer' %> 

    <%= javascript_include_tag "https://maps.google.com/maps/api/js?key=******************************" %> 
    <%= javascript_include_tag "https://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js" %> 

    <%= javascript_include_tag "application" %> 

    <%= yield(:after_js) %> 
</body> 

ve benim haritası listeleri/index.html.erb olan dosya böyledir bir girişe bağlı işaretleyicinin dizisidir. Listings Controller'da tanımlanmıştır, bu yüzden bu javascript kodunu taşımak zordur.

Bu dosyanın JavaScript kodu, yalnızca bu sayfayı yeniden yüklediğimde ve sayfa değiştirdiğimde kaybolmuyorsa çalışır.

Sorularım: Pjax sistemi ile belirli bir sayfada bazı Ruby bilgilerini içeren bir JavaScript kodu çağırmak mümkün mü?

cevap

1

Javascriptinizi pjax'ın başarılı işlevine yükleyin.

+1

Bu, bunun nasıl yapıldığını açıklamıyor. Detaylandırır mısınız? –

+0

Evet, daha zor bir şey yaptım (bir bağlantı ve uzaktan kumanda ile işlev çağrısı), ancak bu daha iyidir (ve şimdi pjax'ın daha iyi anlaşılması;)) –

+0

@hugohowchoong;) evet .. PJAX Sayfayı yüklemeden dinamik içeriği gösteren en iyi eklenti .. :) kodlamanın tadını çıkarın;) – Kannan

0

Tamam, çözüm hakkında daha fazla bilgi vereceğim. PJAX'ta

, çoğu zaman, jquery'yi veya jja'nın funciton'unun dışına dahil olan js'yi yüklemez. bu yüzden, js dosyasını pjax işlevinin başarı döngüsüne,

$ getScript ('js fle') kullanarak yüklememiz gerekir; Pjax yeni sayfa içeriği getirdiğinde, eklentinin de yüklendiği ve dahil edildiği şekilde

İlgili konular