Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

call functions from with ejs templates on node

Tags:

node.js

ejs

I am trying to create a non-javascript version of my web app using ejs on the server side. I pass into the template an object containing the app's state, and at one point I want to build a url using that state object. So basically I want to do something like <%=makeUrl(objectState.data[0])%>

how can I make makeUrl callable from within ejs templates?

Thanks

edit: I know I can pass a function in as a parameter to the template, but is there a better way?

like image 766
dan Avatar asked May 15 '12 08:05

dan


1 Answers

in Express 3, they removed the concept of dynamic helpers. I believe that passing functions into the template via app.locals is in fact the recommended way to do this now. I gather you already know how, but for anybody else with this same question:

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

in your template:
<%= myFunc(objectState.data[0]) %>
like image 149
Jason Black Avatar answered Sep 21 '22 15:09

Jason Black