玉石中的双阵列显示

时间:2016-07-20 13:50:23

标签: arrays node.js pug

我有这个阵列设置:

var threads = ["one", "two", "three"]
var data = [
     [11,21,31],
     [12,22,32],
     [13,23,33],
  ]

我喜欢这样的html:

one  two  three
11   21   31
12   22   32
12   23   33

现在我将带有nodejs(Express)的数组传递给我的layout.jade

   table
    thead
      each val in {threads}
        +tablethread(val)
    tbody
      -for (var i = 0; i < {data}.length; i++) {
        tr
        -for (var o = 0; o < {data[i]}.length; o++) {
            +tableval(data[i][o])

有人可以帮助我正确渲染数组吗? (mixins也在layout.jade的顶部定义)

  mixin tableval(val)
     td= val
  mixin tablethread(name)
     th= name

我现在收到此错误:SyntaxError: Unexpected token (146:22)

1 个答案:

答案 0 :(得分:1)

你可以用玉石做到这一点:

- var threads = ["one", "two", "three"]
- var data = [ [11,21,31], [12,22,32], [13,23,33], ]

table
  tr
    for thread in threads
      th=thread
  for values in data
    tr
      for i in values
        td=i

这将编译成以下HTML:

<table>
  <tr>
    <th>one</th>
    <th>two</th>
    <th>three</th>
  </tr>
  <tr>
    <td>11</td>
    <td>21</td>
    <td>31</td>
  </tr>
  <tr>
    <td>12</td>
    <td>22</td>
    <td>32</td>
  </tr>
  <tr>
    <td>13</td>
    <td>23</td>
    <td>33</td>
  </tr>
</table>

我在codepen here上找到了一个有效的例子。