2017-05-15 1 views
1

자바 스크립트 코드 블록에 객체의 배열을 전달하려고합니다. 결과적으로 html로 인코딩하여 실제 JSON에 "이 많이 포함되어 있기 때문에 고민 중입니다.JSON을 pug에서 javascript 변수로 전달

기본적으로 내 라우터는 레디 스 저장소에서 JSON 객체를 가져오고 나는 템플릿에 전달하는 것을 시도하고있다 :

redis.getBuffer('languages', function (err, result) { 
    res.render('manager/create-project', { title: 'Create Project', breadcrumbs: req.breadcrumbs(), languages: result }) 
}) 

내가 내 변수에 다음과 같이 할당 :

script. 
    $(document).ready(function() { 
     var languages = #{languages}; 

문제 : 실제 자바 스크립트 변수 언어는 아래와 같이 html로 인코딩 된 문자열을 가져옵니다.

var languages = [{"id":"aa","text":"Afar"}] 

내 JSON 콘텐츠를 자바 스크립트 블록에 제대로 전달하려면 어떻게해야합니까?

+0

에 대한 링크가있다 :

예를 들어, 다음에 템플릿을 변경하면 문제를 해결해야한다 ? 어쩌면 내가 내 질문을 향상시킬 수 있습니다. – kentor

답변

3

탈출하지 않고 삽입해야합니다. 이는 # 대신 !을 사용하여 수행 할 수 있습니다.

참고로
script. 
    $(document).ready(function() { 
     var languages = !{languages}; 

, 여기에 그가 그렇게 한 이유는이 질문을 downvoted 사람이 나를 설명 할 수있는 docs

+0

완벽, 나는 그 사실을 몰랐습니다! – kentor

+0

도와 줘서 기쁩니다! 대부분의 템플릿 언어는 의도하지 않은 코드 실행 (예 : 주석의 스크립트 태그)을 방지하기 위해 HTML 문자를 자동으로 이스케이프합니다. 따라서 필요한 경우 제어 방법을 알고있는 것이 좋습니다. – Nindaff

관련 문제