在 Jade 的 HTML 中包含模板



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

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

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

关于我如何实现这一目标的任何想法?

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

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

使这更加复杂的是 包装<div class="logo-container">. 如果您有大块原始 HTML 要输出并且不需要大量管道字符,这也可能有效:

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

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

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

仅当您读取路由器中的模板文件并将其作为变量传递给模板时,这才有效。有更复杂的方法可以动态渲染它,但到那时你最好使用上面的方法之一。

最新更新