Wenn eine AJAX-Anforderung ausgeführt wird, gibt show.js.erb
die partielle _article.haml
.Das Rendern von JS.ERB führt zu einem Rohcode
Was ich will, in show.js.erb
zu tun in der Lage sein zu schreiben ist:
<%= j render 'article' %>
Da es eine .js
Erweiterung ich verpflichtet bin, hat dies in JavaScript umwickeln (das obige Beispiel nicht die teilweise nicht machen), so:
'<%= j render 'article' %>' OR ('<%= j render 'article' %>');
Dies würde die teilweise aber mit Rohcode machen - einschließlich HTML und JS entkommen.
('things will go back to \"normal.\"<\/p>\n\n');
Was ist der richtige Weg, dies zu tun?
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!")
}
})
})
Die jQuery 'html (string)' Funktion sollte eigentlich den Text in HTML umwandeln (aus dem Dokument: http://api.jquery.com/html/). Haben Sie in der Show-Aktion versucht, einen 'render'-Artikel' als Antwort für JS-Aufrufe zu erstellen? – MrYoshiji
Versuchen Sie '.text (responseText)' zu verwenden, aber ich bin mir ziemlich sicher, dass es nicht funktioniert - versuchen Sie '.html ($ .parseHTML (responseText))' – MrYoshiji
Nein Ihre Frage ist bereits als jQuery markiert. Vielleicht verwenden Sie einen besseren Fragetitel, wie 'anhängende AJAX-Antwort mit jQuery rendern nicht HTML' – MrYoshiji