Могу ли я избежать многострочного фрагмента в представлении? - PullRequest
1 голос
/ 21 ноября 2011

Мне нужно создать многострочный фрагмент HTML, чтобы его можно было экранировать и представить пользователю.

Это необработанный HTML-код, который я хочу получить от пользователя:

<h1>Here is your HTML:</h1>
<div>
  &lt;script&gt;
    alert("Hello world");
  &lt;/script&gt;
</div>

Который будет отображаться как:

Here is your HTML:

<script>
  alert("Hello world");
</script>

Я обнаружил, что запись ${'<script>alert("Hello world");</script>'} в представлении действительно ускользнет от него, но, похоже, это не работает для многострочных строк внутри ${''}$ - Iполучил следующую ошибку:

expecting anything but ''\n''; got it anyway

Есть ли в настоящее время способ избежать многострочных строк в представлении?(Без передачи строки из контроллера или чего-либо подобного)

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Лучшим способом может быть использование escape (). Raw ():



    ${ "<script> alert(\"Hello world\"); </script>".escape().raw() }

0 голосов
/ 21 ноября 2011

Кажется, я упустил самое очевидное решение: использовать несколько экземпляров ${''}:

<code><h1>Here is your HTML:</h1>
<div>
<pre>
${'<script>'}
  alert("Hello world");
${'</script>'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...