두 곳에서 사용되는 전역 헤더가 있고 템플릿을 렌더링 할 때 전달할 수있는 변수에 위치를 정의하려고했습니다. 같은EJS에 변수 전달하기
뭔가 :
<% include header %>
헤더 렌더링에 전달 된 가치 :
var headerLocation = 'some/location/header.ejs';
res.render(viewDir + '/index', {
header: headerLocation
});
그리고 템플릿 파일
.어쩌면 내가 뭔가를 놓친 것 같아서 여기서 물어볼 생각이었습니다.
는편집 :이 EJS의 버전 2에서 사용할 수
이것은 요약 것이 아니라 아래 답변에 대한 의견에서 언급이다.
는 여기를 참조하십시오 : 여기 https://github.com/mde/ejs#includes 및 관련 토론 : https://github.com/tj/ejs/issues/93 그 오래된 질문은, 다른 사람을 위해 그것을 응답 비록
감사합니다. 나는이 질문을 게시 한 직후에 실제로 https://github.com/visionmedia/ejs/issues/93을 보았습니다. 제자리에 풀 요청이 있지만 아직 npm으로 풀어지지 않은 것으로 보입니다. 다행히 그것이 받아 들여지고 곧 풀려날 것입니다. 나는이 대답을 올바른 것으로 표시 할 것이고 그렇게되면 여기에 도착할 수있는 다른 사람들을 오도하지 않을 것입니다. 어떤 이유로 든 Windows에서만 흥미로운 메모가 노드 전역 개체를 사용하여이 작업을합니다. 따라서 <% include global.somepath %>는 어떻게 든 작동합니다. Mac이나 Linux에서는 그렇지 않습니다. 이상한 것. –
buf + = " '(function() + include +"})() +' ";이 라인으로 bug.push 라인을 변경하십시오. (.push로 에러를 일으킬 수 있습니다.) – Arthur
방금 var에 경로를 저장하고'include '와 함께 var를 사용하려고 시도했지만 여전히 값 대신 var 이름을 사용하려고합니다. EJS'1.0.0' – Vadorequest