I'm using ejs in backend with nodejs. I'd like to pass variable when include. When include the header, pass the page title.
index.ejs:
<% include header %>
<body> . . . </body>
<% include footer%>
header.ejs:
<html lang="en">
<head>
<title><%- my_tytle %></title>
</head>
footer.ejs:
</html>
How to pass my_title
in the include command?
It is possible to access JS variable in . ejs file. You just need to pass the JS object as second parameter of res. render() method.
Locals represent server-side data that is accessible to your view—locals are not actually included in the compiled HTML unless you explicitly reference them using special syntax provided by your view engine. <div>Logged in as <a><%= user.fullName %></a>.</
You can pass the object inside the include statement
<%- include("header",{title:"your_title"}) %>
you can pass my_tytle
directly to the index.ejs and if there is a partial view for header, my_tytle
should be accessible to the header.
for example: index.ejs:
<% include header %>
<body> . . . </body>
<% include footer%>
header.ejs:
<html lang="en">
<head>
<title><%- my_tytle %></title>
</head>
now from node server if you pass the value for my_tytle
to index.ejs, like this:
res.render('template_file.js', {
my_tytle : "Value for your title"
});
then your partial view (i.e header in your case) would be also able to access that variable.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With