Ich möchte Pjax und Google Map in meiner Rails App implementieren und ich habe ein Problem mit dem Neuladen meiner JavaScript-Codes.Pjax und Neuladen von JavaScript auf einer bestimmten Seite
Mein Layout/application.html.erb ist wie folgt:
<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>
und die Datei, wo meine Karte Inserate/index.html.erb ist wie folgt aus:
<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 ist ein Array des Markers, der mit einer Liste verknüpft ist. Es ist im Listings Controller definiert, daher ist es schwierig, diesen JavaScript-Code zu verschieben.
Der JavaScript-Code dieser Datei funktioniert nur, wenn ich diese bestimmte Seite neu lade, und es verschwindet nicht, wenn ich die Seite ändere.
Also meine Frage ist: Ist es möglich, einen JavaScript-Code, der einige Ruby-Informationen enthält, auf einer bestimmten Seite mit dem Pjax-System aufzurufen?
Dies erklärt nicht wirklich, wie man das macht. Könnten Sie das näher ausführen? –
Ja, tatsächlich habe ich etwas schwieriger (rufen Sie die Funktion mit einem Link und einem Remote: True), aber dieses ist besser (und ich habe jetzt ein besseres Verständnis von Pjax;)) –
@hugohowchoong;) Ja .. PJAX ist das beste Plugin, um dynamische Inhalte anzuzeigen, ohne Seite zu laden .. :) viel Spaß beim Codieren;) – Kannan