【问题标题】:Jade Include not working (on Extended template)Jade Include 不起作用(在扩展模板上)
【发布时间】:2023-03-25 02:41:01
【问题描述】:

简单的问题: 我正在开始一个新的小项目,其中有 1 个用于变量的翡翠文件、1 个用于布局的翡翠文件、1 个用于混合的翡翠文件,最后还有 1 个用于模板的文件。

当我尝试使用从外部文件导入的变量时,它们不会被加载到模板中,而 mixins 会。

当 page1.jade 被处理时,mixin 被正确导入,layout 被正确扩展,但是来自 styles.jade 的变量没有被导入(或者看起来就是这样),因为 mixins 无法到达变量 styleCenterMain 分配给 style 属性)。

page1.jade:

include mixins.jade
include styles.jade
extends layout.jade

block append wholeContent   

block append wholeContent
    div.test1 Hi world

block append wholeContent
    div.test2 Hi Again

block append wholeContent   
    +moduleMain()
        p Some content to pass to mixin

mixins.jade:(这里是一个得到错误的地方。)

mixin moduleMain()
  table(style=styleCenterMain width="100%" height="100%")          

style.jade.

- styleCenterMain ="margin-left: 0; margin-top: 0; margin-right: 0; margin-bottom: 0; padding-bottom: 0; padding-top: 0; padding-right: 0; padding-left: 0; vertical-align: top;"

layout.jade(xml 文件):

<?xml version="1.0"?>
doctype html

    head        

    body
        <!-- main content -->   

        div(style="background-color:#f2f4f5; margin:0 auto;")
            block wholeContent              

谁能提示一下为什么 style.jade 没有被导入或者为什么 mixin 没有访问它的变量?

非常感谢

【问题讨论】:

    标签: node.js templates pug


    【解决方案1】:

    首先,您包含 styles 并命名为 style 我会检查一下。

    Mixins 是您将变量传递给包含脚本的好方法,但它们必须接收它,它们有自己的范围!

    如果您修复导入名称并执行此操作,它应该可以解决它:

    mixins.jade

    mixin moduleMain(desiredStyle)
      table(style=desiredStyle width="100%" height="100%")  
    

    page1.jade

    ....
    block append wholeContent   
    +moduleMain(styleCenterMain)
        p Some content to pass to mixin
    

    【讨论】:

    • 嗨 FabioCosta(错误的名称是打字错误,对此感到抱歉:) 关于变量,我使用了导入,因为我会有很多变量,并且将它们全部传递过来会很烦人一到mixin。至于范围,这就是我的想法,但我正在读一本 Jade 书,上面说(或者至少我理解)Jade 文件中没有这样的范围,就像所有声明的变量都是“全局”的......
    • 如果变量足够多,你可以使用一个对象,如果我没记错的话,关于范围的每个翡翠文件,无论是否包含,都将被视为一个文件,所以是的,所有变量都是全局的但我认为 mixins 只会访问他们自己的变量。如果你想重用很多代码,你可以在 mixin 上使用一个块
    猜你喜欢
    • 2013-11-16
    • 2012-01-31
    • 1970-01-01
    • 2014-06-11
    • 2018-06-03
    • 2011-04-10
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    相关资源
    最近更新 更多