2011-10-27 16 views
20

Zaczynam od struktury nodejs expressjs i natknąłem się na ten problem, którego nie mogę rozwiązać.Jak utworzyć tabelę html z Jade iterowanie tablicy

Próbuję wyświetlić tabelę z niektórymi wpisami na blogu (tak, blog ...), ale nie robię tego.

To Jade kod szablonu:

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} 

I to jest wyjście 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> 

Więc jakieś pomysły?

+4

Sprawdź n-te reguły CSS podrzędne. Nie musisz obliczać parzystych/nieparzystych i ręcznie dodawać klasy. http://www.w3.org/Style/Examples/007/evenodd.en.html –

+0

Tak, masz rację. Ale używałam istniejącego projektu, którego nie chciałem zmienić. W każdym razie to nie problem. Próbowałem już wydrukować bezklasowy znacznik tr, który też nie działał. – PaquitoSoft

Odpowiedz

27

okazało się, że problemem było to, że mi brakuje znacznika TD dla każdej TR. Tak więc kod jadeitowy powinien wyglądać następująco:

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

hah, nie widziałem tego. cieszę się, że to wymyśliłeś – Chance

+0

Musiałem usunąć i, i zrobić każdy post w userPosts –

+0

jakie jest znaczenie: obok tr? –

7

spróbować

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

Próbowałem już tego. To nie działa. Dzięki za pomoc. – PaquitoSoft

+0

jakie jest znaczenie: obok tr? –