我正在计划我的网站结构如下:
- header.scala.html
- XXX
- footer.scala.html
现在,应该有一个特定的页面(即“UsersView.scala.html”),而不是“xxx”。
我需要的是包括(如知名语言)页脚的来源和
标题插入中间页面的代码。
所以我的问题是:
答案 0 :(得分:31)
只需像方法一样调用另一个模板。如果您想包含 footer.scala.html :
@footer()
答案 1 :(得分:13)
一种常见的模式是创建一个包含样板的模板,并采用HTML类型的参数。让我们说:
main.scala.html
@(content: HTML)
@header
// boilerplate
@content
// more boilerplate
@footer
事实上,您并不需要使用这种方法来分隔页眉和页脚。
您的UsersView.scala.html然后如下所示:
@main {
// all your users page html here.
}
您将UsersView作为参数传递给主页包装。
您可以在samples
中查看相关示例我通常使用的主要模板更具参与性,看起来大致如下:
@(title: String)(headInsert: Html = Html.empty)(content: Html)(implicit user: Option[User] = None)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>@title</title>
// bootstrap stuff here
@headInsert
</head>
<body>
@menu(user)
<div id="mainContainer" class="container">
@content
</div>
</body>
</html>
通过这种方式,模板可以传入头部插入和标题,并使用户可用,当然还有内容。
答案 2 :(得分:2)
Play提供了一种非常方便的方法来帮助实现它!
官方文档的布局部分:
首先我们有一个base.html(我们在django -_-中调用)
// views/main.scala.html
@(title: String)(content: Html)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
</head>
<body>
<section class="content">@content</section>
</body>
</html>
如何使用base.html?
@main(title = "Home") {
<h1>Home page</h1>
}
更多信息here