Node.js Jade:嵌套的'循环不工作

使用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代码。 我不知道破折号是什么,如果花括号在模板上有所作为。

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

破折号是丑陋的做法…玉有一些内部的迭代器,你可以使用没有破折号…破折号的意思是“该行的其余部分是纯粹的Javascript”

看起来你的问题在于缺乏“进入”tr的缩进…所以它使tr …然后closures它,然后做了一个新的tr tr来保存你试图然后吐出的td。