2016-05-25 6 views
-1

私のjsファイル内の部分をレンダリングし、javascriptイベント(クリック)でHTMLに追加しようとしています。私はこれに従い、escape_javascriptメソッドを使用しようとしました:Rendering partial in js.erb file しかし、残念ながらそれは動作しません。 これは私のjsファイルである:これは私の部分であるJSファイル内でerb partialをレンダリングすると、文字列がレンダリングされます

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

     }) 

}) 

​​

ジャバスクリプトが実際に.clickイベントでトリガされますが、それは(部分的にレンダリング= escape_javascript <%をレンダリングしている:「resident_formを")%>を文字列として返します。それを修正する正しい方法は何ですか。

答えて

0

ねえ、あなたのコードは次のようになります。サーバはこのJavaScriptを返すとき、あなたのビューがすでに準備ができていたので、すべてです

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

、このコード$(document).ready(function(){})は必要ありません!

+0

[OK]をそれでも準備ができて、私の部分文書はまだ<%= escape_javascript(部分的にレンダリング: "resident_form")%>は、文字列上でレンダリングされていないと( "居住者") –

+0

は '$ですレンダリングされます'既存の? –

+0

はい$( "。resident")が存在する場合、JSは実際にクリックイベントでトリガーされます。問題は、私の部分をレンダリングする代わりに、文字列として<%= escape_javascript(render partial: "resident_form")%>をレンダリングすることです。 –

0

JSレンダリングでこれを試してください。

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

残念ながら<%= escape_javascript(部分的に "resident_form"をレンダリングします).html_safe%>私のHTMLに... –

関連する問題