2016-05-25 20 views
-1

Ich versuche, eine partielle innerhalb meiner Js-Datei zu rendern und an meine HTML bei einem Javascript-Ereignis (klicken Sie auf). Ich habe versucht, dies zu folgen und die escape_javascript-Methode zu verwenden: Rendering partial in js.erb file aber leider funktioniert es nicht. Dies ist meine js-Datei:Rendern erb teilweise in JS-Datei rendert eine Zeichenfolge

$(document).ready(function(){ 
     $("#add_resident").click(function(){ 
      $(".resident").append('<%= escape_javascript(render partial: "resident_form") %>'); 

     }) 

}) 

dies mein Teil ist:

<%= label_tag "first name" %> 
<%= text_field_tag "resident[:first_name]" %> 
<%= label_tag "last name"%> 
<%= text_field_tag "resident[last_name]" %> 
<%= label_tag "birthdate"%> 
<%= text_field_tag "resident[birthdate]" %> 

das Javascript in der Tat auf dem .click Ereignis ausgelöst wird, aber es ist Rendering <% = escape_javascript (render Teil: „resident_form ")%> als String. Was ist der richtige Weg, um das zu beheben?

Antwort

0

Hey Ihr Code sollte sein:

$("#add_resident").click(); 
$(".resident").append('<%= escape_javascript(render partial: "resident_form") %>'); 

das alles ist, kann diesen Code nicht brauchen $(document).ready(function(){}), denn wenn Server gibt diese Javascript, Ihrer Ansicht nach war schon fertig!

+0

Ok, aber auch mit dem Dokument bereit, meine teilweise noch nicht auf der Saite Rendering <% = escape_javascript (render Teil: "resident_form")%> gerendert wird –

+0

Ist '$' bestehende ("resident"). ? –

+0

yes $ (". Resident") existiert, das JS wird tatsächlich beim click-Ereignis ausgelöst. Das Problem besteht darin, dass ich anstelle von partially Rendering <% = escape_javascript (render partially: "resident_form")%> als String lief –

0

Versuchen Sie dies in der JS gerendert.

$(".resident").append('<%= escape_javascript(render partial: "resident_form").html_safe %>'); 
+0

Leider bekomme ich <% = escape_javascript (render partially: "resident_form"). Html_safe%> angehängt zu meinem HTML ... –