web-dev-qa-db-fra.com

Comment créer une table html avec Jade itérant un tableau

Je commence avec le framework node expressjs et je suis tombé sur ce problème que je ne peux pas résoudre.

J'essaie d'afficher un tableau avec des articles de blog (oui, un blog ...) mais je ne le fais pas.

Voici le code du modèle 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}

Et voici la sortie 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>

Alors, des idées?

23
PaquitoSoft

J'ai trouvé que le problème était que je manquais la balise TD pour chaque TR. Donc le code jade devrait être comme ceci:

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

essaye ça

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}
7
Chance

Avec la version pug actuelle, cela ne fonctionnait pas pour moi. Au lieu de cela, j'ai modifié le code selon le modèle suivant:

div
  table
    thead
      tr
        th title...
    tbody
      each post in userPosts
        tr
          td= post.author
          td= post.title
0
Nikolas H