EJS 包含在单独的 ejs 文件中定义的函数
EJS include functions defined in a separate ejs file
我正在尝试包含一个 ejs 文件,其中包含用于设置我的视图的函数。这些函数被定义为用作助手。我试过使用:
<% include helpers.ejs %>
但是当我尝试使用此文件中的函数时:
<% module_start('$body', [{name:'display',value:'block'}], 'body'); %>
我收到错误:
Reference Error: module_start is not defined
当我将代码从 'helpers.ejs' 复制到我的原始视图文件 'test.ejs' 时,它按预期工作。我已经经历了几个答案,并且,
我仍然很困惑在这种情况下我做错了什么。
提前感谢您的帮助。
经过数小时的艰苦尝试,尝试了所有设想的解决方案后,我找到了一个可行的解决方案。解决方案借自:
查看此代码中提供的解决方案,我将 'helpers.ejs' 更新为 'helpers.js'。在此之后,我将 'helpers.js' 中的导出函数添加到 ejs 渲染上下文对象:
const ejs_helpers = require('path/to/helpers.js');
...
ejs.renderFile('filename', { helpers:ejs_helpers, ...}, (err,data)=>{});
在ejs视图文件中:
<%- helpers.function_name(params); %>
这大大改变了我最初处理问题的方式。使用普通的 ejs 帮助文件,函数在控制流语句之间包含 HTML。在此处介绍的情况下,函数 returns 纯字符串。注意带有 'Scriptlet' 标签的“-”。
希望这对某人有所帮助。
我正在尝试包含一个 ejs 文件,其中包含用于设置我的视图的函数。这些函数被定义为用作助手。我试过使用:
<% include helpers.ejs %>
但是当我尝试使用此文件中的函数时:
<% module_start('$body', [{name:'display',value:'block'}], 'body'); %>
我收到错误:
Reference Error: module_start is not defined
当我将代码从 'helpers.ejs' 复制到我的原始视图文件 'test.ejs' 时,它按预期工作。我已经经历了几个答案,并且, 我仍然很困惑在这种情况下我做错了什么。
提前感谢您的帮助。
经过数小时的艰苦尝试,尝试了所有设想的解决方案后,我找到了一个可行的解决方案。解决方案借自:
查看此代码中提供的解决方案,我将 'helpers.ejs' 更新为 'helpers.js'。在此之后,我将 'helpers.js' 中的导出函数添加到 ejs 渲染上下文对象:
const ejs_helpers = require('path/to/helpers.js');
...
ejs.renderFile('filename', { helpers:ejs_helpers, ...}, (err,data)=>{});
在ejs视图文件中:
<%- helpers.function_name(params); %>
这大大改变了我最初处理问题的方式。使用普通的 ejs 帮助文件,函数在控制流语句之间包含 HTML。在此处介绍的情况下,函数 returns 纯字符串。注意带有 'Scriptlet' 标签的“-”。
希望这对某人有所帮助。