Как добавить переменную внутри шаблона .EJS - PullRequest
1 голос
/ 18 марта 2019

У меня есть страница указателя, страница справки и страница контактов. У меня также есть файл header.ejs. Внутри header.ejs у меня есть это:

<a href="/">Home</a> |
<a href="/about">My Resume</a> |
<a href="contact">My Contact Info</a>
<br>
_______________________________________

-----------------------------------------
<br>


<h3>Copyright 2019  Some text here</h3>

Я хотел бы использовать точно такой же заголовочный файл для индекса и контактных страниц. Я бы хотел, чтобы содержание каждой страницы менялось. Этот контент должен быть размещен внутри сплошных и пунктирных линий. Я не могу использовать отдельные заголовочные файлы. Я могу использовать только один. Как я могу использовать этот же шаблон, но создать пространство и заполнить его различным содержанием для каждой страницы? Вот пример моего индексного файла:

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
  <%include templates/header.ejs%>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %></p>
  </body>
</html>

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Когда вы используете функцию include, вы должны опустить .ejs.

Например, в вашем index.ejs:

<%- include 'templates/header' %>

Если вы хотите повторно использоватьВ том же шаблоне вы должны поместить весь «необязательный» контент, который вы можете решить визуализировать, в отдельный файл .ejs, а затем при каждом выполнении условия вы можете делать следующее:

somePage.ejs:

<p>Welcome to <%= title %></p>

someOtherPage.ejs:

<p>Goodbye <%= title %></p>

index.ejs:

<%- include 'templates/header' %>

<% if (someVar == true) { %>
<%- include 'somePage' %>
<% } %>

<% else if (someOtherVar == true) { %>
<%- include 'someOtherPage' %> 
<% } %>

Наконец, на вашем app.js:

app.get('somePath', function(req, res) {
  res.render('index', {someVar:true, someOtherVar:false}); //pass variables to template like this
});
0 голосов
/ 18 марта 2019

добавить переменную page в заголовочный файл:

<a href="/">Home</a> |
<a href="/about">My Resume</a> |
<a href="contact">My Contact Info</a>
<% if(page=='home') { %>
  // add your home page header content here 
<% }else if(page=='contact'){%>
 // add your contact page header content here 
<% }else if(page=='resume'){%>
 // add your resume page header content here 
<% }else{ %>
  // default header
<% } %>
<h3>Copyright 2019  Some text here</h3>

включить ее, передав переменную страницы:

для домашней страницы:

<%- include('templates/header', {page: 'home'}); %>

для контактастраница:

<%- include('templates/header', {page: 'contact'}); %>
...