从节点上的ejs模板调用函数

dan*_*dan 8 ejs node.js

我正在尝试使用服务器端的ejs创建我的Web应用程序的非JavaScript版本.我将包含应用程序状态的对象传递给模板,并且有时我想使用该状态对象构建一个URL.所以基本上我想做像<%= makeUrl(objectState.data [0])%>这样的事情

如何从ejs模板中调用makeUrl?

谢谢

编辑:我知道我可以将函数作为参数传递给模板,但是有更好的方法吗?

Jas*_*ack 13

在Express 3中,他们删除了动态助手的概念.我相信通过app.locals将函数传递到模板实际上是现在推荐的方法.我知道你是怎么知道的,但是对于其他有这个问题的人:

in your app.js:
app.locals.myFunc = function(arg){...}

in your template:
<%= myFunc(objectState.data[0]) %>
Run Code Online (Sandbox Code Playgroud)