2012-04-27 21 views
5

Estoy tratando de que Moustache funcione correctamente con Express, y como uno puede adivinar, estoy teniendo problemas.Node.js + Express - ¿Cómo funciona parciales de bigote?

La siguiente línea inicializa a Moustache agradable y limpio. Las variables se representan como se espera.

app.register('html', require(__dirname+'/public/js/libs/mustache.js')); 

Sin embargo, los problemas comienzan a aumentar cuando los parciales se lanzan en la mezcla. Con Moustache, este aquí parcial debe invocar vista de encabezado/parcial.

{{> header}} 

Pero, por desgracia, no pasa nada. :/Incluso cuando ofrezco el parcial directamente, Moustache no lo renderiza.

app.get('/', function(req, res) { 
    res.render('welcome', { 
     partials: { 
      header: '<h1>Header</h1>'   
     } 
    }); 
}); 

Por lo tanto, parece que los parciales no funcionan en absoluto. He encontrado un hack que conseguir es los parciales algo de trabajo:

http://bitdrift.com/post/2376383378/using-mustache-templates-in-express

Después de que los parciales hacen cuando se les ofrece directamente en hacer la llamada (véase más arriba), pero no lo consigo en la prestación de los parciales directamente a puntos de vista/diseños:

diseño es como la siguiente:

Behold, the header 
{{> header}} 
<p>Let's move to more important stuff...</p> 

vista de encabezado es como la siguiente:

<h1>Header</h1> 

Express puede cargar los puntos de vista de por sí no está mal, pero no saber cómo manejar los parciales del bigote ...

Respuesta

2

Logramos que funcione con la última versión de hogan-express.

https://github.com/vol4ok/hogan-express

Todo lo que se necesita es instalar Hogan-express y utilizarlo como motor de plantillas de expreso. No es necesario hackear o sintonizar.

+0

¿Algún otro comentario sobre cómo lo hizo o problemas que ha encontrado? para arrancar el proceso de alguien un poco más;) (Entonces voy a votar) – electblake

+1

Todo lo que hice fue instalar hogan-express y usarlo como plantilla de motor en Express. :) No es necesario hackear o sintonizar. – crappish

0

No estoy seguro de qué es exactamente en su ./public/js/libs/mustache.js ... Utilizo el módulo de bigote de npm + una variación del objeto de plantilla you linked to.

En cualquier caso, el objeto que pasa al app.register necesita llamar al mustache.to_html(template, locals, partials) en algún momento.

Debe pasar el objeto de parciales como el tercer argumento para to_html de bigote.

Cuestiones relacionadas