2011-11-21 3 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 

현재보기에서 여러 줄 문자열을 이스케이프 처리하는 방법이 있습니까?) (

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

답변

0

내가 보인다 (컨트롤러 나 같은 아무것도에서 문자열을 전달없이) 가장 확실한 해결책을 놓친하기 .raw() :



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

1

더 좋은 방법은 탈출을 사용할 수 있습니다 : ${''}의 여러 인스턴스를 사용

+0

여전히 여러 줄 템플릿을 지원하지 않습니다. – ripper234

관련 문제