Node.js Jade : Nested 'for' loop not working

标签 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 代码。我不知道破折号的用途是什么,也不知道花括号在模板中是否有所不同。

最佳答案

- 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出来。

关于Node.js Jade : Nested 'for' loop not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20669495/

相关文章:

Elasticsearch:路径下的嵌套对象不是嵌套类型

node.js - GRPC微服务架构实现

node.js - 如何使用 Outlook 日历 api 2.0 检索重复序列中的事件?

node.js - Express 中中间件测试的 stub 请求\响应

node.js - Socket.io:覆盖的generateId()被执行,但返回的id似乎被忽略

c++ - 在C++中避免for循环。但为什么?

r - 在 map2 中映射 - 如何正确引用参数(purrr)

for-loop - F# 嵌套 for 循环中的编译错误,语法冗长

r - 如何跨不同年份使用for循环并将多个地 block 放在一起?

java - For循环和输出