我正在使用 Play framework 2.2.4 和 Scala 模板。我创建了包含许多代码块的基本 Scala 模板,我想在多个视图中使用它们。就像是:
base.scala.html
@()
@display(product: Product) = {
@product.name ($@product.price)
}
products.scala.html
...
@display(product)
...
如何导入此类文件以使用@display块?
我正在使用 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>