【问题标题】:Node+Express+Jade : Array/Objects Not renderingNode+Express+Jade:数组/对象不渲染
【发布时间】:2014-01-15 07:34:09
【问题描述】:

//我[当前]传递给 Jade 模板的内容

exports.list = function(req, res){
    res.render('report', {title: 'Custom Reports', 
        rpts:[{uri:'/reports/allocation', title:'Allocation Report'}]});
};

//翡翠模板

 extends layout 
    h1 title
    ul
        each rpt in rpts
        li= a(href=rpt.uri)= rpt.title

//我看到标题写在头上,但正文是空的

<!DOCTYPE html><html><head><title>Custom Reports</title><link rel="stylesheet" href="/stylesheets/style.css"></head><body></body></html>

//如果我删除模板扩展,我会在页面上收到错误

类型错误:/views/report.jade:5 3| h1 标题 4| ul > 5| rpts 6中的每个rpt| li= a(href=rpt.uri)= rpt.title 无法读取未定义的属性“长度”

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

    这可能是您在 Stack 中的格式,但 li 标签应该在每个声明下缩进。此外,您不需要锚点后的第二个 = 符号。

    each rpt in rpts
      li= a(href=rpt.uri) rpt.title
    

    已更新 哦,我刚刚注意到您的内容缺少 block 指令。无论您在布局中声明的block 都应该放在这里进行渲染。

    【讨论】:

    • 谢谢,我也明白了。当我尝试通过渲染()传递 rpts 时,我仍然遇到同样的错误。当我将对象的 JSON 数组直接添加到模板中时,模板按预期工作。
    猜你喜欢
    • 2017-06-10
    • 1970-01-01
    • 2016-12-17
    • 2013-04-15
    • 2014-06-01
    • 2015-01-13
    • 2014-11-10
    • 2012-04-08
    • 1970-01-01
    相关资源
    最近更新 更多