В моем экспресс-приложении Я изменил механизм просмотра на ejs.express js - ejs с шаблоном макета
Кто-нибудь знает, можно ли использовать шаблоны просмотра?
В моем экспресс-приложении Я изменил механизм просмотра на ejs.express js - ejs с шаблоном макета
Кто-нибудь знает, можно ли использовать шаблоны просмотра?
Express.js оставляет это до движка шаблона, если я правильно помню. Поэтому, если ejs не поддерживает макеты, вам не повезло.
Вы можете сделать это с этим модулем ...
https://github.com/aseemk/express-blocks
layout.ejs
<html>
<body>
<% include nav %>
<h1><%= title %></h1>
<%- body %>
</body>
</html>
login.ejs
<% layout('layout') -%>
<form>...</form>
nav.ejs
<nav>
<% if (session.logged_in) { %>
<a href="/account">account</a>
<a href="/logout">logout</a>
<% } else { %>
<a href="/signup">signup</a>
<a href="/login">login</a>
<% } %>
<a href="/">home</a>
</nav>
Я использовал экспрессивные части, но я нашел экспресс-блоки, чтобы быть лучше для ejs и выразить 3.x. использование партикулов было болью, чтобы передавать данные в любое время. С <% include whatever %>
данные уже доступны.
В файле маршрутов, вы можете сделать так:
exports.login.get = function(req, res){
res.locals.session = req.session;
res.render('login', { title: 'Login to your account' });
};
Собственно после того, как Экспресс 3.X не поддерживает layout.ejs, если вы хотите использовать макет, следующие шаги должны сделать самостоятельно :
package.json
файл"dependencies": { "express": "3.1.0", "ejs": "*", "express-partials": "*" }
npm install
установить последнюю версию express-partials
express-partials
в вашем app.js
var partials = require('express-partials');
app.use(partials());
под app.set('view engine', 'ejs');
в app.js
файлепосле этого, вы можете создать вам layout.ejs
и добавьте <%- body%>
в ваш файл layout.ejs
, и этого достаточно и wo хорошо.
Хороший мужчина ........ –
Он предположительно поддерживает макеты в соответствии с документацией экспресс, но мне еще нужно, чтобы он работал правильно. –
3.x удаленные макеты. Руководства на сайте - 2.x. – Pickels
Вы можете использовать ejs-locals для определения макета. – aredridel