代码之家  ›  专栏  ›  技术社区  ›  Dmitry Kaigorodov

使用pug扩展时传递变量

  •  1
  • Dmitry Kaigorodov  · 技术社区  · 7 年前

    我有一个叫做 posting.pug extends 哈巴狗 settingsLayout 我的应用程序中有几个设置页面。我想传递一个变量 posting=1 设置布局 页面,向用户显示发布页面是当前页面。

    如何将变量传递给扩展的模板?

    我以前试过设置一个变量 延伸 . 这是不允许的。

    我试着把它作为一个属性传递——不起作用。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Ha Huu Tin    7 年前

    你可以这样试试

    block variables    
    
    doctype html
    html
      head
      body
        // Try to call variable here
        h1 posting
    

    extends settingsLayout
    
    block variables
      - var posting = 1
    

    我希望这个工作!

        2
  •  0
  •   Yaro    6 年前


    它能很好地与
    php compiler pug-php/pug@^3.4

    webpack pug-loader@^2.4.0 pug@^2.0.4 webpack@^4.43.0 webpack-dev-server@^3.11.0

    我有一个更复杂的版本。
    我想覆盖很多变量,例如我有pageTitle,sitetTitle,siteDivider变量。

    我有一个主页 views/index.pug .
    views/layouts/default.pug .
    我在一些文件中存储了默认变量: views/vars/page.pug , views/vars/site.pug .

    视图/变量/帕格

    - var pageTitle = "##Default##"
    

    - var siteTitle = "Yaro"
    - var siteDivider = "|"
    

    文件 视图/索引.pug

    extend layouts/default
    
    block vars
      include vars/site
      include vars/page
      - var pageTitle = "Business Solutions & IT development"
    

    视图/布局/默认值.pug

    block vars
      include ../vars/site
      include ../vars/page
    
    doctype html
    html
      head
        meta(charset="utf-8")
        meta(name="viewport", content="width=device-width, initial-scale=1, shrink-to-fit=no")
        title #{pageTitle} #{siteDivider} #{siteTitle}
      body
        block body
    

    所以我在标题中等待结果:业务解决方案和IT开发| Yaro

    但我只收到:业务解决方案和IT开发 没有siteDivider和siteTitle:(

    但如果我有这样的档案

    extend layouts/default
    
    block vars
      include vars/site
      include vars/page
      - var pageTitle = "Business Solutions & IT development"
      - var siteDivider = "|"
      - var siteTitle = "Yaro"
    

    它工作得很好。

    推荐文章