Node.js Jade:嵌套'for'循环不起作用

时间:2013-12-18 22:10:37

标签: node.js for-loop nested inline pug

使用Node.js中的Jade模板引擎,我试图使用嵌套JavaScript来填充包含元素的表。 这就是我想要实现的目标:

<tr class="darkTableRow">
    <td class="vcTextValue">value: 0</td>
    <td class="vcTextValue">value: 1</td>
</tr>
<tr class="darkTableRow">
    <td class="vcTextValue">value: 0</td>
    <td class="vcTextValue">value: 1</td>
</tr>
<tr class="darkTableRow">
    <td class="vcTextValue">value: 0</td>
    <td class="vcTextValue">value: 1</td>
</tr>

我使用的Jade代码是:

- for (var g = 0; g < GPU_count; g++)
    tr.darkTableRow
    - for (var v = 0; v < 2; v++) 
        td.vcTextValue= 'value: ' + v

这是模板输出的HTML:

<tr class="darkTableRow"></tr>
<tr>
    <td class="vcTextValue">value: 0</td>
    <td class="vcTextValue">value: 1</td>
</tr>
<tr class="darkTableRow"></tr>
<tr>
    <td class="vcTextValue">value: 0</td>
    <td class="vcTextValue">value: 1</td>
</tr>
<tr class="darkTableRow"></tr>
<tr>
    <td class="vcTextValue">value: 0</td>
    <td class="vcTextValue">value: 1</td>
</tr>

如您所见,正在呈现一个空,并且它的类被设置为darkTableRow。这不是我想要的。

我是否正确地编写了Jade代码?我不明白如何格式化内联JavaScript代码。我不知道破折号是什么,如果花括号在模板中产生差异。

1 个答案:

答案 0 :(得分:1)

- for (var g = 0; g < GPU_count; g++) {
      tr.darkTableRow
          - for (var v = 0; v < 2; v++) 
              td.vcTextValue= 'value: ' + v
- }

破折号是丑陋的方式... Jade有一些内部迭代器,你可以使用没有破折号......破折号意味着“这条线的其余部分是纯粹的Javascript”

看起来你的问题是缺少缩进“进入”tr ...所以它让tr ...然后关闭它,然后做了一个新的假tr来保持td你尝试然后吐进行。