node.js - script - ejs<%
Node.js-EJS-incluyendo un parcial (5)
Estoy tratando de usar el procesador de Javascript incorporado para el nodo: https://github.com/visionmedia/ejs
Me gustaría saber cómo puedo incluir otro archivo de vista (parcial) dentro de un archivo de vista .ejs.
Con Express 3.0:
<%- include myview.ejs %>
la ruta es relativa del llamante que incluye el archivo, no del directorio de vistas establecido con app.set("views", "path/to/views")
.
EJS por sí mismo actualmente no permite ver parciales. Expreso hace
En Express 4.x
usé lo siguiente para cargar ejs
:
var path = require(''path'');
// Set the default templating engine to ejs
app.set(''view engine'', ''ejs'');
app.set(''views'', path.join(__dirname, ''views''));
// The views/index.ejs exists in the app directory
app.get(''/hello'', function (req, res) {
res.render(''index'', {title: ''title''});
});
Entonces solo necesitas dos archivos para que funcione - views/index.ejs
:
<%- include partials/navigation.ejs %>
Y las views/partials/navigation.ejs
:
<ul><li class="active">...</li>...</ul>
También puedes decirle a Express que use ejs
para plantillas html:
var path = require(''path'');
var EJS = require(''ejs'');
app.engine(''html'', EJS.renderFile);
// Set the default templating engine to ejs
app.set(''view engine'', ''ejs'');
app.set(''views'', path.join(__dirname, ''views''));
// The views/index.html exists in the app directory
app.get(''/hello'', function (req, res) {
res.render(''index.html'', {title: ''title''});
});
Finalmente también puedes usar el módulo de diseño de ejs
:
var EJSLayout = require(''express-ejs-layouts'');
app.use(EJSLayout);
Esto usará views/layout.ejs
como tu diseño.
Express 3.x ya no soporta parcial. De acuerdo con la publicación de ejs ''parcial no está definido'' , puede usar la palabra clave "include" en EJS para reemplazar la funcionalidad parcial eliminada.
A partir de Express 4.x
app.js
// above is all your node requires
// view engine setup
app.set(''views'', path.join(__dirname, ''views'')); <-- ./views has all your .ejs files
app.set(''view engine'', ''ejs'');
error.ejs
<!-- because ejs knows your root directory for views, you can navigate to the ./base directory and select the header.ejs file and include it -->
<% include ./base/header %>
<h1> Other mark up here </h1>
<% include ./base/footer %>