2017-05-23 13 views
0

내보기를 설정하는 기능이 포함 된 ejs 파일을 포함하려고합니다. 이 기능들은 도우미로 사용되도록 정의되었습니다. 나는 사용하여 시도했다 :EJS는 별도의 ejs 파일에 정의 된 기능을 포함합니다.

<% include helpers.ejs %> 

을하지만이 파일에서 함수를 사용하려고하면 나는의 코드를 복사 할 때

Reference Error: module_start is not defined 

:

<% module_start('$body', [{name:'display',value:'block'}], 'body'); %> 

나는 오류 'helpers.ejs'를 원래의보기 파일 인 'test.ejs'에 적용하면 예상대로 작동합니다. 나는 몇 가지 대답을 통해 갔고, 아직도 내가 뭘 잘못하고 있는지 혼란 스럽다.

미리 도움을 주셔서 감사합니다.

답변

2

생각 나는 솔루션을 모두 시험해 보느라 지독한 시간을 보낸 후, 나는 작동하고있는 해결책에 착수했습니다. 이 코드에서 제시 한 솔루션을 찾고

EJS Functions

, 나는 'helpers.js'내 'helpers.ejs'를 업데이트 :이 솔루션에서 차용되었다.

<%- helpers.function_name(params); %> 

이 상당히 내가 처음이 문제를 접근 방식을 변경하십시오 EJS보기 파일에서

const ejs_helpers = require('path/to/helpers.js'); 

... 

ejs.renderFile('filename', { helpers:ejs_helpers, ...}, (err,data)=>{}); 

이에 따라, 나는 컨텍스트 객체를 렌더링 EJS에 'helpers.js'에서 내 보낸 함수를 추가 . 일반 ejs 도우미 파일을 사용하면 함수가 제어 흐름 문 사이에 HTML을 포함합니다. 여기에 제시된 경우 함수는 일반 문자열을 반환합니다. 'Scriptlet'태그가있는 '-'를 확인하십시오.

희망이 있으면 도움이됩니다.

+0

분명히 나를 도왔습니다. 감사합니다. – AntK

+0

당신은 환영합니다. –