2011-04-23 13 views
10

información que encontré fue esto:¿Cómo renderizo los parciales con jade sin express.js? Sólo

http://forrst.com/posts/Node_js_Jade_Import_Jade_File-CZW

que replica la estructura de carpetas sugerido (vistas/parciales) Pero no funcionó, tan pronto como puse

!=partial('header', {}) 
!=partial('menu', {}) 

en el índice .jade, me sale una pantalla en blanco, el mensaje de error que recibo de jade es:

ReferenceError: ./views/index.jade:3 1. 'p index'
2. ''
3. '!=partial(\'header', {})'

partial is not defined

estaría muy agradecido por cualquier ayuda! (Prefiero no usar express.js)

Respuesta

1

Creo que la representación parcial se realiza en modo expreso, por lo que tendrá que enganchar ese código o escribir el suyo.

tengo mi propia clase de ayuda para el jade de representación con los parciales que se pueden utilizar o obtener algunas ideas de here, (se trata de utilizar Joose y Cactus)

+0

Hola Adam, ¿Cuál es la manera de utilizar el código se conectó? ¡Parece que podría ser la solución a mi problema! –

2

Con el último nodo/expreso me sale el siguiente movies.jade plantilla para llamar parciales:

div(id='movies') 
    - each movie in movies 
    !=partial('movie', movie) 

donde he movie.jade en el directorio de puntos de vista junto movies.jade.

movies.jade se llama desde app.js con:

res.render('movies', { movies: [{ title: 'Jaws' }, { title: 'Un Chien Andalou' }] });

23

Jade tiene un comando llamado incluir. Sólo tiene que utilizar

include _form 

dado que el nombre de archivo del parcial es _form.jade * *, y está en el mismo directorio

+0

Wow gracias por señalar esto –

+2

include funciona la mayor parte del tiempo pero no puede hacer cosas como inclusión recursiva ya que están incluidas en tiempo de compilación. –

+0

¿no realizarías simplemente la recursión en el include? –

9

A partir de agosto de 2012 (posiblemente anterior) Parciales se han eliminado de Express.

Muchos de los tutoriales están desactualizados. Parece que puede replicar gran parte de la funcionalidad parcial con include.

Por ejemplo.

movies.jade

div(id='movies') 
    - each movie in movies 
    include movie 

movie.jade

h2= movie.title 
.description= movie.description 

HTH