Визуализация частичного в тегах <code или <pre>с помощью jQuery и Rails - PullRequest
2 голосов
/ 01 июля 2010

Я работаю над простым приложением HTML-шаблонов Rails / jQuery, которое хранит серию предварительно разработанных шаблонов в базе данных (на данный момент я только что сохранил их как партиалы для работы базовой концепции) и нажимаю Показать код «рядом с любой из этих записей шаблона, сценарий js.erb должен динамически размещать соответствующий фрагмент внутри тегов« pre »с помощью JS на этой странице, чтобы пользователь мог видеть необработанный HTML-код.

В данный момент это работает, но я возвращаю рендеринг html, а не необработанный HTML, который я ищу. Вот JS:

$("div#template-view").html("<pre><code><%= escape_javascript( render :partial => "core_template") %>
");

Так что, скажите, пожалуйста, что я упускаю из виду !? : -)

Спасибо

Allan

Ответы [ 2 ]

3 голосов
/ 01 июля 2010

Используйте взамен

$("div#template-view").text("...")

.Это не будет анализировать код

1 голос
/ 01 июля 2010

Предварительный тег будет показывать исходный код (или любой текст) в разумном приближении к его исходному состоянию, но он не будет экранировать HTML для вас.Неэкранированный html всегда будет отображаться как html независимо от того, в каком теге он находится. Под экранированием я имею в виду, что все специальные символы конвертируются в экранированные версии.Метод rails h сделает это за вас, поэтому если вы вызовете h с результатами вызова escape_javascript, то он должен работать нормально.

$("div#template-view").html("<pre><code><%= h(escape_javascript(render :partial => "core_template")) %>
");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...