在Jade filej

时间:2017-02-06 16:42:41

标签: javascript node.js express view pug

我有一个非常简单的玉页,它没有正确显示从javascript路径传递给它的所有变量。我尝试过in this answer描述的方式,但它不适用于我的情况。我只是想显示3个变量:页面标题和两个按钮文本。

到目前为止,只有标题显示正确,按钮文字根本不显示。

这是routes/index.js

中的代码
 /* GET home page. */
 router.get('/', function(req, res, next) {
   res.render(                                                                         
     'index',
     {locals:{                                                                         
         title: 'Real-Time Music Collaborator',
         buttonText1: 'Login',
         buttonText2: 'Start Creating',
     }}
   );
 });

这是views/layout.jade

中的代码
doctype html
html.full-screen
   head
 title= title
 link(rel='stylesheet', href='/stylesheets/style.css')
body.full-screen
 block content

这是views/index.jade

中的代码
extends layout

block content
  div.base-background-colour.no-margin.height-20.padding-100
    h1.centre-text.dark-grey-colour.no-margin= title
  button
    h3.centre-text.dark-grey-colour= buttonText1
  button
    h3.centre-text.dark-grey-colour= buttonText2

让我感到困惑的是title变量如何正常工作,即使我将其更改为使用预先附加的=,但无论我尝试从哪个变量显示它都不会显示。在渲染的html中,按钮文本不存在,因此它不是由类引起的样式问题。

如果有帮助,我正在运行快递版4.14.0。 谢谢!

1 个答案:

答案 0 :(得分:1)

不要在locals内定义您的对象。只需通过一个像

这样的匿名对象
app.get('/', function(req, res) {
  res.render('index', {
    var1: 'myVariable'
  })
})

然后删除locals定义,例如p #{myVariable}