2 Stimmen

Rails, Teilrendering über JS beim Laden der Seite?

Also ich verstehe, wie man Teile rendert, wenn zum Beispiel ein Link angeklickt wird, aber was ist, wenn ich den Teil laden möchte, nachdem die Seite gerendert wurde?

show.html.erb

weather.js.erb

$( "#weather" ).html( "<%= escape_javascript(render( :partial => 'weather' )) %>");

weather.html.erb

<%= Time.now %> # Aus Gründen der Kürze. Das macht eigentlich mehr.

Controller

def weather

  slow_api_request

  respond_to do |format|
    format.js {render :layout => false}
  end

Aber wie kann ich dann die Anfrage für den Teil starten, nachdem die Seite geladen wurde (weil die Aktion ziemlich langsam ist, um die Daten von der API abzurufen)? Ich verwenden Rails UJS, bin nur etwas verwirrt.

3voto

apneadiving Punkte 112449

Sie sollten einfach einen AJAX-Aufruf hinzufügen. Nehmen wir an, Sie verwenden jQuery, fügen Sie einfach diesen Art von Skripten in Ihrer Ansicht hinzu:

$.ajax({
  type: "GET",
  url: "<%= url_for your_path %>" ,
  success: function(data){
    // falls es irgendwann mehr zu tun gibt (es gibt auch einen Fehlerbehandlung)
  }
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X