Jade模板中的`body!= body`是什么意思?

时间:2012-04-09 15:11:18

标签: express pug

此问题与将Jade templatesExpress.js一起使用有关。

我知道当我写layout.jade时包含:

!!!
html
    body != body
        header
            h1 My header

当我致电res.render('index')时,我的实际模板会呈现为body的开头。

我的问题是:!= body是什么意思以及Jade / Express如何使用它来确定我的模板在布局中的位置?我知道如果我在另一个元素中更改!= body,那么实际视图将在那里呈现。有谁知道这个功能的记录在哪里?

1 个答案:

答案 0 :(得分:7)

我引用了Jade的documentation/guide:

  

默认情况下,为了安全起见,缓存了=的代码被转义,但输出您可能使用的非转义返回值!=:

     
    

p!= aVarContainingMoreHTML

  

使用res.render('index')时,index.jade的渲染内容(在您的情况下)将作为局部变量传递到布局文件(layout.jade)。局部变量以 body 的形式提供。但是,如果我们只输出 body 局部变量,它将被转义(特殊字符将被编码)。因此,通过使用!=,正文的内容将被输出 unescaped

退房:http://expressjs.com/guide.html#view-rendering