在翡翠的html中包含模板

时间:2018-10-09 15:31:17

标签: express pug

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

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

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

关于如何实现此目标的任何想法?

1 个答案:

答案 0 :(得分:2)

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

text = (Text)lookup( ".text" );
scrollPane = (ScrollPane)lookup( ".scroll-pane" );
scrollPane.setHbarPolicy( ScrollPane.ScrollBarPolicy.NEVER );
scrollPane.setVbarPolicy( ScrollPane.ScrollBarPolicy.NEVER );

Group textGroup = (Group)text.getParent();

textGroup.layoutBoundsProperty().addListener( observable -> {
    double height = top + textGroup.getLayoutBounds().getHeight() + bottom;
    setMaxHeight( height );
    setMinHeight( height );
    setPrefHeight( height );
} );

更复杂的是包装body | <div class="logo-container"> include someTemplate | </div> 。如果您要输出大量的原始HTML并且不希望使用很多竖线字符,这也可能会起作用:

<div class="logo-container">

如果您的模板不需要进行翡翠/ pug渲染(即,仅是常量/静态文本),则可以使用interpolation输出变量:

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

这仅在您read the template file在路由器中并将其作为变量传递到模板时才有效。有许多复杂的方法可以动态呈现此效果,但是到那时,最好使用上述方法之一。