使用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代码。我不知道破折号是什么,如果花括号在模板中产生差异。
答案 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你尝试然后吐进行。