【问题标题】:include template within jade's html在玉的 html 中包含模板
【发布时间】:2018-10-09 15:31:16
【问题描述】:

如果我在翡翠中使用点符号来使用实际的 html 标签,我想知道如何在翡翠模板中“包含模板名称”。

doctype html
html
  head
    link(rel='stylesheet', href='/stylesheets/header.css')
  body.
     <div class="logo-container">
            include someTemplate
     </div>

执行上述示例将显示文本“include someTemplate”,而不是模板本身。

关于如何实现这一点的任何想法?

【问题讨论】:

    标签: express pug


    【解决方案1】:

    包含在纯文本块中不起作用,因为它是 Jade 语句而不是 JavaScript 表达式,因此您可以更轻松地逐行移动纯文本块,以便您可以同时使用两者:

    body
      | <div class="logo-container">
      include someTemplate
      | </div>
    

    使这更复杂的是包装&lt;div class="logo-container"&gt;。如果您要输出大量原始 HTML 并且不想要很多管道字符,这也可以工作:

    body
      div.
        (raw html goes here)
      .logo-container
        include someTemplate
      div.
        (more raw html goes here)
    

    如果您的模板不需要jade/pug 渲染(即如果它只是常量/静态文本),那么您可以使用interpolation 来输出变量:

    body.
         <div class="logo-container">
                !{someTemplate}
         </div>
    

    这仅适用于您在路由器中read the template file 并将其作为变量传递给模板。有更复杂的方法来动态渲染它,但到那时你最好使用上述方法之一。

    【讨论】:

    • @Graham 第一个例子虽然我不太喜欢 |在每一行之前。对于第二个示例,您能否提供一个将模板作为变量加载到路由中的示例?
    • @IanS 我刚刚进行了编辑,为您提供了另一种处理此问题的方法以及指向读取文件示例的链接。我们可能正处于您需要使用更多详细信息编辑原始问题的地步,以便为您提供具体建议(例如为什么需要输出原始 HTML、包含文件中的内容等)。如果以上内容对您不起作用,请回复此评论,我会用我的问题评论您的原始问题:)
    • 感谢您的编辑。这两个例子都为我工作,我是一个快乐的人,有一些动态玉模板。
    • 如果可能,尽快升级到 pug 以获得最新版本。这是值得的,通常只需将 *.jade 重命名为 *.pug 并在 app.js 中添加几行代码。
    • 好建议。还有更多关于哈巴狗与玉的堆栈问题
    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2018-10-26
    相关资源
    最近更新 更多