2012-04-09 2 views
6

이 질문은 Jade templatesExpress.js을 사용하는 것과 관련이 있습니다.Jade 템플릿에서 'body! = body`는 무엇을 의미합니까?

은 내가 layout.jade를 작성할 때 포함 된 것을 알고 :

!!! 
html 
    body != body 
     header 
      h1 My header 

내 실제 템플릿을 body의 시작 부분으로 렌더링되는 다음 res.render('index') 전화

.

내 질문은 : != body의 의미는 무엇이며 Jade/Express가 레이아웃에서 내 템플릿의 배치를 결정하는 데 어떻게 사용합니까? 다른 요소 안에 != body을 변경하면 실제 뷰가 대신 렌더링됩니다. 누구든지이 기능이 문서화 된 곳을 알고 있습니까? !

+1

이이 일에 대한 몇 가지 설명을 부탁합니다. 내 마음에 들었다. – Hacknightly

답변

7

난 당신이 사용할 수있는 값을 반환 이스케이프 그러나 출력, 보안을 위해 기본적으로 이스케이프 = 의해 버퍼링 제이드의 documentation/guide:

코드에서 인용 =

P = aVarContainingMoreHTML

!

에 요 (index.jaderes.render('index')의 렌더링 된 내용을 이용하여 ur case)는 로컬 변수로 레이아웃 파일 (layout.jade)에 전달됩니다. 지역 변수는 본문으로 사용할 수 있습니다. 그러나 본문 로컬 변수를 출력하는 경우 으로 이스케이프됩니다 (특수 문자는 인코딩 됨). 따라서! =를 사용하면 본문의 내용이 으로 이스케이프 처리되지 않고으로 출력됩니다.

체크 아웃 : http://expressjs.com/guide.html#view-rendering

+0

굉장! 그냥 대답을 찾고 있었지만 문서에서 아주 분명하지 않았습니다. – jsalonen