2012-06-08 37 views

Respuesta

3

Express.js lo deja hasta el motor de plantillas si no recuerdo mal. Entonces, si ejs no admite diseños, entonces no tiene suerte.

+0

Supuestamente admite diseños de acuerdo con la documentación de express, pero aún no lo he hecho funcionar correctamente. –

+0

3.x diseños eliminados. Las guías en el sitio web son 2.x. – Pickels

+0

Puede usar ejs-locals para definir un diseño. – aredridel

5

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' }); 
}; 
9

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 :

  1. complemento dependencia "-parciales expresar": "*" en el que package.json archivo
 
    "dependencies": { 
     "express": "3.1.0", 
     "ejs": "*", 
     "express-partials": "*" 
    } 
  1. ejecutar npm install para instalar la última versión de express-partials
  2. requieren express-partials en su app.js
    var partials = require('express-partials');
  3. código de complemento 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.

+0

Buen hombre ........ –

Cuestiones relacionadas