Как создать HTML-таблицу с Jade итерацией массива - PullRequest
23 голосов
/ 27 октября 2011

Я начинаю с каркаса узла expressjs и столкнулся с этой проблемой, которую не могу решить.

Я пытаюсь отобразить таблицу с некоторыми сообщениями в блоге (да, в блоге ...), но у меня ничего не получается.

Это код шаблона 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}

И это вывод 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>

Итак, есть идеи?

Ответы [ 3 ]

32 голосов
/ 29 октября 2011

Я обнаружил, что проблема была в том, что мне не хватало тега TD для каждого TR. Так что нефритовый код должен быть таким:

div
  table
    thead
      tr: th Posts
    tbody
      each post, i in userPosts
        tr
          td 
            a(href='/admin/post/' + post.id) #{post.author} - #{post.title}
7 голосов
/ 28 октября 2011

попробуйте

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 голосов
/ 11 марта 2019

С текущей версией мопса у меня не получилось. Вместо этого я изменил код по следующей схеме:

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