En mi aplicación express, He cambiado el motor de vista a ejs.express js - ejs con plantilla de diseño
¿Alguien sabe si todavía es posible aprovechar las plantillas de visualización?
En mi aplicación express, He cambiado el motor de vista a ejs.express js - ejs con plantilla de diseño
¿Alguien sabe si todavía es posible aprovechar las plantillas de visualización?
Express.js lo deja hasta el motor de plantillas si no recuerdo mal. Entonces, si ejs no admite diseños, entonces no tiene suerte.
Puede hacerlo con este módulo ...
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>
Estaba usando parciales expresos, pero encontré que los bloques rápidos son mejores para ejs y express 3.x. usar parciales fue un dolor tener que pasar datos en todo momento. Con <% include whatever %>
los datos ya están accesibles.
En el archivo de rutas, se puede hacer así:
exports.login.get = function(req, res){
res.locals.session = req.session;
res.render('login', { title: 'Login to your account' });
};
en realidad después de expreso 3.X No se admite layout.ejs, si desea utilizar el diseño, siguiendo los pasos que se debe hacer por sí mismo :
package.json
archivo"dependencies": { "express": "3.1.0", "ejs": "*", "express-partials": "*" }
npm install
para instalar la última versión de express-partials
express-partials
en su app.js
var partials = require('express-partials');
app.use(partials());
bajo el archivo app.set('view engine', 'ejs');
en app.js
después de eso, se puede diseñar layout.ejs
y agregue el bloque <%- body%>
en su archivo layout.ejs
, y eso es suficiente. rking bien.
Buen hombre ........ –
Supuestamente admite diseños de acuerdo con la documentación de express, pero aún no lo he hecho funcionar correctamente. –
3.x diseños eliminados. Las guías en el sitio web son 2.x. – Pickels
Puede usar ejs-locals para definir un diseño. – aredridel