2011-11-21 74 views
1

我需要生成一个多行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>'}确实会逃跑,但这似乎不适用于${''}$内的多行字符串 - 我得到以下错误:

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

目前有一种方法可以在视图中转义多行字符串吗? (如果没有从控制器或类似的东西传递字符串)

回答

0

我似乎已经错过了最明显的解决方案:使用${''}多个实例:

<h1>Here is your HTML:</h1> 
<div> 
<pre> 
${'<script>'} 
    alert("Hello world"); 
${'</script>'} 
</pre> 
</div> 
1

一个更好的办法可能是使用越狱() .raw():



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

+0

这仍然不支持多行模板。 – ripper234

相关问题