AJAXリクエストが実行されると、show.js.erb
は部分_article.haml
をレンダリングします。私はshow.js.erb
で行うことができるようにしたいどのようなレンダリングJS.ERBの結果が生コード
は書くことです:
<%= j render 'article' %>
それは私が(上記の例では、部分的にレンダリングされません)JavaScriptでこれをラップするために必要なのです.js
拡張子を持っているので、そう: - HTMLとエスケープJS含む
'<%= j render 'article' %>' OR ('<%= j render 'article' %>');
これは、部分的なものの 生のコードとをレンダリングします。
('things will go back to \"normal.\"<\/p>\n\n');
これを行うには適切な方法はありますか?
welcome#index
:
.ajax_load.article-content{ data: { 'remote-url' => article_path(@article) } }
articles.js
:
$(document).ready(function() {
$('.ajax_load').each(function(index, element) {
var url = $(element).data('remote-url')
if (url) {
$.get(url, function(responseText) {
$(element).html(responseText);
})
} else {
console.log("missing url for ajax!")
}
})
})
jQueryの 'HTML(文字列)'関数は、実際にHTMLにテキストを変換する必要があります(doc:http://api.jquery.com/html/から)。 showアクションでJS呼び出しのレスポンスとして 'render 'article''を実行しようとしましたか? – MrYoshiji
'.text(responseText)'を使ってみてくださいが、うまくいきません - 最終的には '.html($。parseHTML(responseText))'を試してください – MrYoshiji
質問はまだjQueryとしてタグ付けされていません。 'jQueryでAJAXレスポンスを追加するとHTMLがレンダリングされない 'のように、より良い質問タイトルを使用する可能性があります。 – MrYoshiji