伺服器端可變插值

可以將變數從伺服器傳遞到 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>