我正在尝试使用 scala 学习 Play 2.0,但我认为我不太了解 play 2.0 的模板系统是如何工作的。我之前使用过 play 1.2,我正在寻找与 #{include 'views/blah.html' /} 等效的版本。我本质上想创建一个在所有页面上呈现的导航栏。
基本上在 main.scala.html 我有
@(title: String)(navbar: Html)(content: Html)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
<script src="@routes.Assets.at("javascripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
</head>
<header>
This is my header
</header>
<section class="navbar">@navbar</section>
<section class="content">@content</section>
<footer>
This is my footer
</footer>
在我的 index.scala.html 中:
@navbar = {
<h1>Index</h1>
<ul>
<li>
<a href=@routes.Application.tasks>Tasks</a>
</li>
</ul>
}
@main("Home")(navbar){
content
}
在 task.scala.html 中:
@(tasks: List[Task], taskForm: Form[String])
@import helper._
@main("Home") {
<h1>Index</h1>
<ul>
<li>
<a href=@routes.Application.tasks>Tasks</a>
</li>
</ul>
} {
task code
}
现在要包含这个导航栏,似乎我必须在每个页面中重复这个,我必须将这个导航栏硬编码到每个页面中。有没有办法做到这一点,而无需在每个页面中编写整个导航栏?
我还尝试创建一个 navbar.scala.html 文件,其中包含
<h1>Index</h1>
<ul>
<li>
<a href=@routes.Application.tasks>Tasks</a>
</li>
</ul>
并保存在视图/然后使用导入,@import views.navbar
但随后我收到一条错误消息,指出“导航栏不是视图的成员”。如果有帮助,我将在 Eclipse Java EE IDE indigo 中编写此内容。