如何知道Jade中的块内容是否为空

时间:2013-12-03 08:09:06

标签: node.js express pug

我们如何检查Jade中是否存在块,我正在尝试在Jade中创建一个模板,其中我在layout.jade中有以下块,在login.jade中我扩展了layout.jade。现在,在account.jade中,我将同时拥有左侧和主要内容块

extend layout.jade
   div(class='col-md-4')
      block leftcontainer
   div(class='col-md-8')
      block content

现在在login.jade中我想隐藏

   div(class='col-md-4')
       block leftcontainer

并使主要内容整页,如果leftcontainer不在那里。看起来应该是这样的

  div(class='col-md-12')
     block content

如果用户在某个页面上,我想要隐藏左列块。如果用户在登录页面,那么

1 个答案:

答案 0 :(得分:1)

如果我做对了,如果用户(例如登录到您应用的用户)在某个页面上,您就不会隐藏阻止。如果这是对的,请执行以下操作:

Express&的示例Passport

// server
app.get('/login', function(req, res){
  if(req.isAuthenticated()) {
    res.render('login', { 'user' : req.user } );
  } else {
    res.render('login', { 'user' : null } );
  }
});

// layout
extend layout.jade
  if user !== null
    div(class='col-md-12')
      block content
  else
    div(class='col-md-4')
       block leftcontainer
    div(class='col-md-8')
       block content

一般情况下,您可以在Jade中使用其他条件语句,而不使用Passport,这只是一个示例。您可能需要查看reference,尤其是在条件或案例下。