node.js jade if语句不起作用

时间:2016-03-21 08:51:52

标签: javascript node.js pug

我编写了node.js的演示并尝试使用jade模板,如下面的代码:

if name == 'a'
  block header
    h4 statement1
else
  block header
    h4 statement2

'name'是一个传递给模板的参数,模板文件扩展到其他模板,所以我尝试在块'header'中显示一些内容。
但我发现它总是显示statement1内容,即使' name'未定义或任何其他值。
我测试了名称的值是否正确传递,所以似乎'if'语句在我的代码中不起作用。我怎样才能正常工作?

2 个答案:

答案 0 :(得分:0)

如果您可以看到statement1,那么这意味着您的if条件正常工作我建议您应该检查块头是否正确扩展。也许你可以分享你正在做的事情。

答案 1 :(得分:0)

尝试这样做。它应该工作:

block header
   if name == 'a'
      h4 statement1
   else
      h4 statement2

根据我的理解,这与Jade在解决条件之前解析的事实有关。如果你喜欢这样:

if true
   append header
      h4 hello
else
   append header
      h4 world

Jade追加"你好"和#34;世界"即使这应该是不可能的,因为if语句显然是正确的。这进一步说明条件不会评估如何正确处理扩展。