在哈巴狗(玉)内动态创建元素

时间:2016-09-15 17:38:18

标签: node.js express pug

我正在尝试在pug模板中动态创建元素。

我使用基本命令

从数据库中检索信息
 db.component.findAll().then(function(component){
    res.render('stock' ,{ table:component})
  })

应该创建内容的模板是

  .tbl-content
    table(cellpadding='0', cellspacing='0', border='0')
      tbody
       - row in table
            tr
                td= "#{row.name}"
                td= "#{row.storage}"

我检查了语法,它应该是正确的,但结果是完全错误的。它需要row in table作为字符串,例如内容并在页面上显示,与"#{row.name}""#{row.storage}"相同

我使用过时的语法还是我的方法完全错了?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您使用Node.js的默认//Set timer switch $setM_swith=0; $(function(){ $(".navbar-nav li a").click(function(event) { if (!$(this).parent().hasClass('dropdown')) $(".navbar-collapse").collapse('hide'); }); $(".navbar-collapse").mouseleave(function(){ $setM_swith=1; setTimeout(function(){ if($setM_swith==1) { $(".navbar-collapse").collapse('hide'); $setM_swith=0;} }, 3000); }); $(".navbar-collapse").mouseover(function() { $setM_swith=0; }); }); 模板引擎,那么您使用的语法似乎是错误的

你可以通过以下方式使其发挥作用:

pug

在文档中更详细地解释: https://pugjs.org/language/iteration.html

我完成的简单Node.js测试文件是我成功测试的:

.tbl-content
    table(cellpadding='0', cellspacing='0', border='0')
      tbody
       each row in table
            tr
                td= row.name
                td= row.storage

导致回复:

var express = require('express');
var app = express();
app.set('view engine', 'pug');

var component = [
    {name:'myName', storage:'myStorage'},
    {name:'myName2', storage:'myStorage2'}
];
app.get('/table', function (req, res) {
    res.render('stock' ,{ table:component});
});

app.listen(3000);