Express Jade如何使用路由传递的变量执行条件css

Express Jade如何使用路由传递的变量执行条件css,express,pug,templating-engine,Express,Pug,Templating Engine,我试图将一个可变的“天气”传递给我的Jade模板,并根据天气是否下雨、晴朗等情况改变背景 这是我的route index.js文件 var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' , ip: req.ip,

我试图将一个可变的“天气”传递给我的Jade模板,并根据天气是否下雨、晴朗等情况改变背景

这是我的route index.js文件

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' , ip: req.ip, weather: 'rain'});
});

module.exports = router;
这是index.jade文件中的一部分,其中包含我试图传递的条件

//styles
    style.
      .intro {
      if weather == 'rain'
        background: url(../images/rain.jpg) no-repeat bottom center scroll;
      }
在这里,我只是在没有条件的情况下更改了背景,而且效果很好

//styles
    style.
      .intro {
      background: url(../images/rain.jpg) no-repeat bottom center scroll;
      }

我有最新版本的jade,我确保缩进,所以我不太确定我的语法哪里错了

不幸的是,您描述的方法不可能做到这一点。如中所述,
style
内容不是由帕格解释的,而是以纯文本格式保存。这意味着任何条件逻辑都需要在页面的实际主体中发生

您可以通过创建两个(或更多)类来轻松解决这个问题,它们分别命名为
.rainy
.clear
,并在
样式
部分中静态定义它们。然后,在body中,您可以根据
weather
的值动态地向
.intro
元素添加类