服务器端可变插值

可以将变量从服务器传递到 Pug 以进行动态内容或脚本生成。Pug 模板可以访问传递给 Express 中 res.render 函数的变量(如果你没有使用 Express,那么 pug.renderFile,参数是相同的)。

index.js

let colors = ["Red", "Green", "Blue"];
let langs  = ["HTML", "CSS", "JS"];
let title  = "My Cool Website";

let locals = {
    siteColors: colors,
    siteLangs:  langs,
    title:      title
};
res.render("index", locals);

index.pug 文件中,你可以通过其键访问 locals 变量。Pug 文件中变量的名称变为 siteColorssiteNames

要将 HTML 元素的整体设置为等于变量,请使用 equals 运算符 = 执行此操作。如果你的变量需要内联嵌入,请使用括号语法 #{} 来执行此操作。

index.pug

doctype html
html
    head
        title= title
    body
        p My favorite color is #{siteColors[0]}.
        p Here's a list of my favorite coding languages
        ul
            each language in siteLangs
                li= language

index.pug 输出

<!DOCTYPE html>
<html>
    <head>
        <title>My Cool Website</title>
    </head>
    <body>
        <p>My favorite color is Red.</p>
        <p>Here's a list of my favorite coding languages</p>
        <ul>
            <li>HTML</li>
            <li>CSS</li>
            <li>JS</li>
        </ul>
    </body>
</html>