2011-10-27 36 views
20

Estoy comenzando con el nodo expressjs framework y me encontré con este problema que no puedo resolver.Cómo crear una tabla html con Jade iterando una matriz

Estoy tratando de mostrar una tabla con algunas publicaciones en el blog (sí, un blog ...) pero no lo hago.

Este es el código de la plantilla de Jade:

div 
    table 
    thead 
     tr: th Posts 
    tbody 
     each post, i in userPosts 
     tr(class=(i % 2 == 0) ? 'odd' : 'even'): a(href='/admin/post/' + post.id) #{post.author} - #{post.title} 

Y esta es la salida HTML:

<div> 
    <a href="/admin/post/1">Post 1</a> 
    <a href="/admin/post/2">Post 2</a> 
    <a href="/admin/post/3">Post 3</a> 
    <table> 
    <thead> 
     <tr> 
     <th>Posts</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr class="odd"></tr> 
     <tr class="even"></tr> 
     <tr class="odd"></tr> 
    </tbody> 
    </table> 
</div> 

Así, alguna idea?

+4

Echa un vistazo a n-th reglas CSS niño. No necesita calcular par/impar y agregar una clase manualmente. http://www.w3.org/Style/Examples/007/evenodd.en.html –

+0

Sí, tienes razón. Pero estaba usando un diseño existente que no quería cambiar. De todos modos, ese no es el problema. Ya traté de imprimir una etiqueta tr classless y tampoco funcionó. – PaquitoSoft

Respuesta

27

me encontré con que el problema era que me estaba perdiendo la etiqueta TD para cada TR. Así que el código de jade debería ser así:

div 
    table 
    thead 
     tr: th Posts 
    tbody 
     each post, i in userPosts 
     tr 
      td 
      a(href='/admin/post/' + post.id) #{post.author} - #{post.title} 
+0

ja, no vi eso. me alegro de que lo haya resuelto – Chance

+0

Tuve que eliminar el i, y hacer cada publicación en userPosts –

+0

¿cuál es el significado de: al lado de tr? –

7

probar esto

div 
    table 
    thead 
     tr: th Posts 
    tbody 
     each post, i in userPosts 
     tr(class=(i % 2 == 0) ? 'odd' : 'even') 
      td 
      a(href='/admin/post/' + post.id) #{post.author} - #{post.title} 
+0

Ya lo intenté. No funciona Gracias por tu ayuda. – PaquitoSoft

+0

¿Cuál es el significado de: al lado de tr? –

Cuestiones relacionadas