2016-06-29 4 views
-1

스크립트 태그를 스크립트에 쓰는 동안 Handlebars 식을 사용하여 템플릿에 삽입하면 실행되지 않습니다.EmberJS 1.13 템플릿 - htmlSafe 문자열의 스크립트 요소가 실행되지 않습니다. JS

내 구성 요소로이 글을 쓰는 시도 :

test: Ember.String.htmlSafe("<script>console.log('Hello World')</script>")

그리고 내 템플릿 :

{{test}}

이는 DOM에 삽입되지만, 코드를 실행하지 않습니다 . 나는 HTMLBars 템플릿에 스크립트 태그를 허용하지만 단지 내 JS를 실행 템플릿 자체에

<script>console.log('Hello World')</script>

를 작성하지 않았기 때문에 그것은 생각했다.

누군가가이 문제를 해결할 수있는 방법이 있는지 또는 왜 이런 일이 발생했는지에 대한 설명을 제공 할 수 있습니까? 미리 감사드립니다.

답변

0

자바 스크립트 문자열을 사용하는 경우 추가 {{{}}}를 사용하여 올바르게 표시 할 수 있습니다. 안전한 템플릿 출력 :

{{{test}}} 

이렇게하면됩니다. 이 블로그를 살펴 그렇게 할 필요가 없습니다

http://www.kaspertidemann.com/html-safe-strings-in-handlebars/

+0

빠른 응답을 보내 주셔서 감사합니다. 이중 대괄호를 사용하여 Ember.String.htmlSafe를 사용하면 이스케이프 처리를 통해 제대로 표시됩니다. script 태그는 잘 보이지만 그 안의 JS는 실행되지 않습니다. 나는 또한 체크하기 위해서 트리플 괄호를 시험해 보았고, JS도 실행하지 않았다. – Jan

+1

나는 당신이 성취하려는 것을 확신하지 못합니까? 엠버의 장군은 문자열을 피하거나 삼각 괄호를 사용하는 도우미를 쓸 수 있습니다. 질문에 HTML.safe가 실행되지 않는다는 내용이 있기 때문에 스크립트를 실행 하시겠습니까? 그것을 실행해서는 안되는 이유는 그것이 안전 lol입니다 –

0

게시해야합니다. 구성 요소에서 JavaScript 코드를 실행하거나 질문에 설명 된 것처럼 템플릿에 <script> 태그가있을 수 있습니다.