在jadejs中使用if else来创建正文颜色或背景图像

时间:2013-02-25 01:08:46

标签: node.js express pug

你好我使用带有nodejs的jade和express来制作网页,在这种情况下我想使用if语句创建一个具有不同样式的主体......

这是代码

-if(image && image.length)
    body(style="background-image:url(#{image})")
-if(color && color.length)
    body(style="background-color:#{color}")


    h2 hello world

如果背景存在则使用背景图像

如果存在颜色则使用背景颜色

但问题是当图像存在hello世界或所有在主体上缩进的代码都不起作用时,如果我在颜色存在时将颜色放在图像上,其余代码为空...

我该如何解决这个问题

编辑2:

使用两个语句中的include修补此问题

-if(image && image.length)
    body(style="background-image:url(#{image})")
    include restofcode
-if(color && color.length)
    body(style="background-color:#{color}")
    include restofcode

restofcode.jade

h2 hello world

一切正常

1 个答案:

答案 0 :(得分:3)

尝试此操作而不是无法正确缩进:

- var myStyle = ''
- if(image && image.length) 
  - myStyle += "background-image:url(" + image + ");";
- if(color && color.length) 
  - myStyle += "background-color:" + color + ";";
body(style=myStyle)
    h2 Hello World