gpt4 book ai didi

EJS 包含在单独的 ejs 文件中定义的函数

转载 作者:行者123 更新时间:2023-12-04 20:37:24 25 4
gpt4 key购买 nike

我正在尝试包含一个 ejs 文件,其中包含用于设置我的 View 的函数。这些函数被定义为使用助手。我试过使用:

<% include helpers.ejs %>

但是当我尝试使用这个文件中的函数时:
<% module_start('$body', [{name:'display',value:'block'}], 'body'); %>

我收到错误:
Reference Error: module_start is not defined

当我将代码从“helpers.ejs”复制到我的原始 View 文件“test.ejs”时,它按预期工作。我已经经历了几个答案,并且,
我仍然很困惑在这种情况下我做错了什么。

提前感谢您的帮助。

最佳答案

在尝试了所有构想的解决方案的几个小时之后,我找到了一个有效的解决方案。解决方案是从以下借来的:

EJS Functions

查看此代码中提供的解决方案,我将“helpers.ejs”更新为“helpers.js”。在此之后,我将“helpers.js”中的导出函数添加到 ejs 渲染上下文对象中:

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

...

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

在 ejs View 文件中:
<%- helpers.function_name(params); %>

这极大地改变了我最初处理问题的方式。使用普通的 ejs 帮助文件,函数在控制流语句之间包含 HTML。在此处介绍的情况下,函数返回纯字符串。注意带有“Scriptlet”标签的“-”。

希望这可以帮助某人。

关于EJS 包含在单独的 ejs 文件中定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44141872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com