pug - 使用 Jade,如何在扩展模板中声明主体类?

标签 pug

使用 Jade 模板引擎,我希望能够在扩展另一个模板的模板中选择性地将类声明为正文标记。

layout.jade

!!! 5
html(lang='en')
head
    block title
    meta(charset='utf-8')
    link(rel='stylesheet', href='/stylesheets/style.css')
    block addhead

block body
    div#wrap
        header
            div#header_content
                p
                    a(href='/')
                        img(src='/images/logo.png', alt='Template-e-o')
            div.hr.red
        br(style='clear:both;')

        div#content
            block content
            br(style='clear:both;')

索引.jade
extends layout

block title
    title bidi

block body
    body.index

block content
    p ’ello govna.

这是行不通的。

最佳答案

好的,block body语句只是一个名为 body 的块,所以在你的布局中你没有 body包含标签,它必须添加到 index.jade 中(您尝试这样做)。然而,在你的 index.jade 中,你只用 body.index 替换了块内容(我猜 - 因为我不在我的开发计算机上并且现在无法尝试 - 呈现正常但取出整个内容,您最终只会得到一个空的主体,尽管它应该具有 class='index' 属性)。

你可以尝试的是这个(在 index.jade 中):

block prepend body
    body.index

但我不确定你的 layout.jade (div#wrap) 的其余部分是否会在 body 下正确呈现(我对此表示怀疑)。

如果真的只是在 body 上添加一个条件类,我会推荐什么,在 layout.jade 中是这样的(而不是块体):
body(class=myClassLocalVar)

在您的 .render 调用中指定 myClassLocalVar ( res.render('index', {myClassLocalVar: 'theClass'}); )。 myClassLocalVar 甚至可以是一个数组,jade 会将数组中的所有类分配给你的 body 。

关于pug - 使用 Jade,如何在扩展模板中声明主体类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211836/

相关文章:

node.js - 脚本内的条件。 Jade 中

css - Jade 模板无法正确呈现 IE 条件(纯 CSS)

javascript - 如何在 Jade 中创建可重用的标记

node.js - Jade.escape 在已编译的 Jade 模板上未定义

node.js - Jade 模板引擎,如何使用layout.jade?

html - Gulp、Pug - 如何将 src/directory 的子目录中的所有 .pug 文件编译到/dist,以便它们保持目录层次结构?

javascript - Pug 从模板中的另一个文件调用 js 函数

加载 socket.io.js 时 Node.js "Uncaught SyntaxError: Unexpected token <"

javascript - 如果数组长度为奇数或偶数,则将元素的宽度从 50% 更改为 100%

html - Bootstrap 自定义图标效果不佳