繁体   English   中英

Scala模板导入可重用块(Play2)

[英]Scala templates import reusable blocks (Play2)

我正在使用Play framework 2.2.4和Scala模板。 我已经创建了包含许多代码块的基本Scala模板,我想在多个视图中使用它。 就像是:

base.scala.html

@()

@display(product: Product) = {
  @product.name ($@product.price)
}

products.scala.html

...
   @display(product)
...

如何在视图中导入此类文件以使用@display块?

每个视图片段都应该在它自己的文件中,并在其中声明自己的参数。 Play模板应该像单个函数一样工作,而不是很多。 而是创建一个名为base的目录,并将视图片段分离为单独的文件。

视图/碱/ display.scala.html

@(product: Product)

@product.name ($@product.price)

意见/ products.scala.html

...
    @base.display(product)
...

将它放在一个单独的文件display.scala.html并使其成为唯一/实际模板,文件名是片段/函数名称:

@(product: Product)

@product.name ($@product.price)

如果在同一个包中,只需要调用它

@display(product)

或者如果在另一个包中使用完整包名或首先导入它

@some.package.display(product)

@import some.package.display

@display(product)

看看模板文档 ,部分: 标签(它们只是函数吗?)

通常,您可以将移动到views/tags/displayProduct.scala.html (并将其用作通用模板),这样您就可以在任何视图中使用它:

<div class="product">
    @tags.displayProduct(product)
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM