循环的模板语言中的条件元素值

时间:2012-11-23 18:40:33

标签: javascript node.js pug

我正在尝试执行以下操作(为了演示目的而剥离优化):

table
    - for(j = 0; j < 10; j++)
    tr
        td Name
        td -for(i = 0; i < 10; i++) // Output a a letter from an array
            #{data[i] + list[i][j]}
            - if(j < list[i].length) // Add a comma if it isn't the last element
            ,

这个想法是第二个td将包含逗号分隔值的列表,if语句将检查它是否是最后一个 - 如果不是,则添加逗号。我敢肯定,只有我对业余人士的翡翠理解让这种感觉变得不可能。似乎我无法在td的正确位置获得价值 - 由于我的缩进,它创建了一个名为data[i] + list[i][j]的新标签,实际上似乎是正确的翡翠要做的事情,但我不知道如何做到这一点并且Jade文档很少。

2 个答案:

答案 0 :(得分:0)

尝试:

table
    - for(var j = 0; j < 10; j++)
      tr
          td Name
          - for(var i = 0; i < 10; i++)
            td #{data[i] + list[i][j]}
            - if(j < list[i].length)
              ,

我没有直接测试你的代码,但更简单的版本按预期工作。希望这是你所需要的。

答案 1 :(得分:0)

在dreame4的答案之后,我能够通过一些实验来建立一个解决方案 - 基本上我意识到我不需要标记,并且Jade将我的#{data [i]}段作为标记进行交织。使用管道(|)我告诉Jade不要将它作为标签插入:

table
    - for(j = 0; j < 10; j++)
    tr
        td Name
        td 
            -for(i = 0; i < 10; i++) // Output a a letter from an array
            | #{data[i] + list[i][j]}
            - if(j < list[i].length) // Add a comma if it isn't the last element
            ,