2

私はajax呼び出しで次のことをしようとしています

index.js.erb

$("#dialog").text("<%= render("index") %>")

js コンソールに、終了していない文字列リテラルがあることがわかります (これは、パーシャルに引用符と空白があるためです)。

escape_javascript を使用しようとしましたが、部分的なコードが表示されます。また、 raw(escape_javascript(render("index")) を呼び出してみましたが、成功しませんでした。

私がする必要があるのは、二重引用符をエスケープして空白を削除することだけだと思います。これのための機能はありますか?

乾杯ティム

4

1 に答える 1

5

問題はエスケープではなく、jQuery テキスト メソッドが使用していた自動エンコーディングでした。

使った

$("#dialog").text("")
$("#dialog").append("<%= render(escape_javascript("index")).html_safe %>")

Firebug が嘘をつき、エンコードされたバージョンではなくレンダリングされた文字を表示していたため、見つけるのが困難でした。

于 2011-03-29T04:07:51.543 に答える