express / pug循环生成每行具有表格的表格

时间:2018-12-14 08:42:50

标签: node.js express templates pug

我只是从node.js / express / pug开始,但是我无法让它每行生成一个表格。

我有这个模板

mixin listentry(alternate,name,exposureTime,manufactor,usecount,lastused)
tr()
    | <form action='' method='post'>
    td()
        input(type='text',name='name',readonly,class='w100',value=name)
    td()
        input(type='number',name='exposureTime',class='w75',value=exposureTime)
    td()
        input(type='text',name='manufactor',class='w100',value=manufactor)
    if usecount == ""
        td()
        td() never
    else
        td() #{usecount}
        td() #{lastused}
    td() Delete Update
    | </form>


- var alternate = false;
each profile,name in profiles
    +listentry(alternate,name,profile.exposureTime,profile.manufactor,profile.usecount,profile.lastused)
    - var alternate = !alternate;

这将产生:

<tr>
   <form>....</form>
   <td>.... ect

但我希望它能成功

<tr>
   <form.....
   <td>.... ect
   </form>

我在做什么错了?

无论我尝试什么,我都无法获得包含一行td的表格,因此我不会将输入输入表格中。

我和我不希望有一个包含所有行的大表格。

编辑:带有form()的新版本,但仍无法产生所需的输出

mixin listentry(alternate,name,exposureTime,manufactor,usecount,lastused)
   tr()
     form(action='', method='post')
        td()
            input(type='text',name='name',readonly,class='w100',value=name)
        td()
            input(type='number',name='exposureTime',class='w75',value=exposureTime)
        td()
            input(type='text',name='manufactor',class='w100',value=manufactor)
        if usecount == ""
            td()
            td() never
        else
            td() #{usecount}
            td() #{lastused}
        td() Delete Update

2 个答案:

答案 0 :(得分:0)

通过使用标准的pug元素而不是转义的HTML(使用|),并确保将要在表单内的所有内容缩进form元素后的两个空格,可以轻松解决此问题。

  form(action='' method='post')
    td()
      input(type='text',name='name',readonly,class='w100',value=name)
    td()
      input(type='number',name='exposureTime',class='w75',value=exposureTime)
    td()
      input(type='text',name='manufactor',class='w100',value=manufactor)
    if usecount == ""
      td()
      td() never
    else
      td() #{usecount}
      td() #{lastused}
    td() Delete Update

答案 1 :(得分:0)

西恩显然是对的,您不能再在每行中有一个表格。

所以解决方案是使用jquery

Create a HTML table where each TR is a FORM