jade中的迭代循环不能正确呈现数据

时间:2013-01-09 19:47:36

标签: javascript node.js express pug

我有一张玉石表格,它将通过快递(res.render('index', {classes: results}))动态生成:

table
  tr
    th Title
    th School
    th Description
- if (classes.length) {
- classes.forEach(function(aClass) {
  tr
    td= aClass.title
    td= aClass.school
    td= aClass.desc
- });}

然而,当我渲染它时,数据就像一个乱码。查看HTML源代码会显示</table>标记之前 classes中的内容。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

你差不多了 - 玉在这里很挑剔。在创建迭代循环时,您需要确保将JavaScript缩进到与数据相同的级别:

table
  tr
    th Title
    th School
    th Description
  - if (classes.length) {
  - classes.forEach(function(aClass) {
  tr
    td= aClass.title
    td= aClass.school
    td= aClass.desc
  - });}

如果这让你的内心编码器畏缩于代码风格,我就和你在一起。然而,就是这样。或者,您可以使用jade的eachdocumented here

table
  tr
    th Title
    th School
    th Description
  - if (classes.length) {
  each aClass in classes
    tr
      td= aClass.title
      td= aClass.school
      td= aClass.desc
  - }

同样,这看起来有点不稳定,但却是玉的迭代方式。

答案 1 :(得分:0)

我的缩进风格是:

table
  tr
    th Title
    th School
    th Description
  if (classes.length)
    each aClass in classes
      tr
        td= aClass.title
        td= aClass.school
        td= aClass.desc