6

这个问题与在 Express.js 中使用Jade模板有关

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

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

当我调用时res.render('index'),我的实际模板将呈现到body.

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

4

1 回答 1

7

我从 Jade 的文档/指南中引用:

为安全起见,由 = 缓冲的代码默认转义,但是要输出未转义的返回值,您可以使用 !=:

p!= aVarContainingMoreHTML

当使用(在您的情况下)res.render('index')呈现的内容时,index.jade将作为局部变量传递给您的布局文件(layout.jade)。局部变量可用作body。但是,如果我们简单地输出body局部变量,它将被转义(特殊字符将被编码)。因此,通过使用 !=,body 的内容将不转义地输出。

查看:http ://expressjs.com/guide.html#view-rendering

于 2012-04-09T15:17:14.427 回答