2011-10-20 8 views
5

estoy tratando de conseguir el jade para generar automáticamente las direcciones URL para mí:node.js plantilla de jade: sintaxis personalizada y reemplazos?

lo que si tengo un enlace de usuario así:

.userLink 
    a(href="/#{user}") #{user} 

Quiero ser capaz de reemplazarlo con algo como (hipotética sintaxis):

.userLink 
    userLink(#{user}) 

¿Te gustaría hacer esto?

Gracias

Editar: yo bien se que:

mixin userLink(user) 
    a(href="/" + user)= user 

mixin userLink("Bob") 

parece como que va a funcionar.

+0

¡Bonito! Me alegra que hayas solucionado los fallos. –

Respuesta

3

ACTUALIZACIÓN:

Aquí hay una versión usando mixins jade. Tristemente, parece que no puedo encontrar la variable "usuario" dentro de la lista de atributos entre paréntesis de la etiqueta "a".

mixin userLink(user) 
    a(href="/" + user)= user 

mixin userLink("Bob") 
mixin userLink("Alice") 
mixin userLink("Cooper") 

genera este HTML

<a href="/undefined"></a> Bob 
<a href="/undefined"></a> Alice 
<a href="/undefined"></a> Cooper 

Sólo hay que poner una función de ayuda en sus locales objetar y llamarlo desde la plantilla

locals = {userLink: function(userName) { return "<a href=....."}} 

jade.render('myview', {locals: locals}) 

Luego, en su plantilla de jade hacer:

= userLink(user) 

Es posible que también desee consultar el posible registro de dynamicHelper function.

+0

Estoy usando jadevu y jade en el lado del cliente, así que esa no es realmente una buena opción para mí. También quiero seguir creando plantillas en el jade, en lugar de tenerlas en el JS también. – Harry

+0

Uh, si "contornear cosas" implica funciones, no está sucediendo. Code prepara los datos, jade lo escupe en HTML. –

+0

¿No es ese el punto de mixins sin embargo? ¿Cómo se usan mixins – Harry

Cuestiones relacionadas