node.js - How to insert new tr every third iteration in Jade -
i'm new in node.js , jade.
i searched solutions without success (maybe asked wrong questions in google, don't know).
i want create table rows in each
loop in jade. thing after every 3rd td
want insert new tr
. it's quite simple jade can't accomplish that.
table thead tr td header tbody each item, in items if (i % 3 === 0) tr td a(href="#{baseurl}/admin.html?id=#{item.id}")
i know wrong if
statement. tried many configurations without luck. i'm sure quite easy issue.
thanks in advance help!
editbased on @laurent perrin reply modified little code. creates tr
, 3 td
, new tr
it's little closer...
if (i % 3 === 0) tr td: a(href="#{baseurl}/admin.html?id=#{item.id}") dsdsd #{i}
generated html <tr></tr> <td><a href="...">0</a></td> <td><a href="...">1</a></td> <td><a href="...">2</a></td> <tr></tr>
edit: code should want, it's not elegant:
table thead tr: td header tbody - for(var = 0, nbrows = items.length/3; < nbrows; i++) { tr if items[3*i] td: a(href="#{baseurl}/admin.html?id=#{items[3*i].id}") if items[3*i + 1] td: a(href="#{baseurl}/admin.html?id=#{items[3*i + 1].id}") if items[3*i + 2] td: a(href="#{baseurl}/admin.html?id=#{items[3*i + 2].id}") - }
what instead tweak model create more jade-friendly, grouping items rows:
function getrows(items) { homecoming items.reduce(function (prev, item, i) { if(i % 3 === 0) prev.push([item]); else prev[prev.length - 1].push(item); homecoming prev; }, []); }this turn:
[{id:1},{id:2},{id:3},{id:4},{id:5}]into:
[ [{id:1},{id:2},{id:3}], [{id:4},{id:5}] ]then jade code becomes much simpler:
table thead tr: td header tbody each row in rows tr each item in row td: a(href="#{baseurl}/admin.html?id=#{item.id}") node.js jade
No comments:
Post a Comment