Templates 在play 2.0 scala中包含scala.html文件
我正在尝试用scala学习Play2.0,但我不太了解Play2.0的模板系统是如何工作的。我以前使用过Play1.2,我正在寻找一个与#{include'views/blah.html'/}相当的版本。我基本上想要创建一个在所有页面上呈现的导航栏 基本上在main.scala.html中Templates 在play 2.0 scala中包含scala.html文件,templates,scala,playframework-2.0,Templates,Scala,Playframework 2.0,我正在尝试用scala学习Play2.0,但我不太了解Play2.0的模板系统是如何工作的。我以前使用过Play1.2,我正在寻找一个与#{include'views/blah.html'/}相当的版本。我基本上想要创建一个在所有页面上呈现的导航栏 基本上在main.scala.html中 @(title: String)(navbar: Html)(content: Html) <!DOCTYPE html> <html> <head> &l
@(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>
@(标题:字符串)(导航栏:Html)(内容:Html)
@头衔
这是我的头球
@导航栏
@内容
这是我的页脚
在我的index.scala.html中:
@navbar = {
<h1>Index</h1>
<ul>
<li>
<a href=@routes.Application.tasks>Tasks</a>
</li>
</ul>
}
@main("Home")(navbar){
content
}
@(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={
指数
-
}
@主(“主”)(导航栏){
内容
}
在task.scala.html中:
@navbar = {
<h1>Index</h1>
<ul>
<li>
<a href=@routes.Application.tasks>Tasks</a>
</li>
</ul>
}
@main("Home")(navbar){
content
}
@(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导入,但是我得到一个错误,声明“navbar不是视图的成员”。我在Eclipse Java EE IDE indigo中写这篇文章,如果有帮助的话。不要导入它,只需调用它:
@navbar()
要将任何其他视图样板包含到其他视图样板中,
您可以使用以下命令简单地调用它:@views.html.[location].[location].[location]()
其中[位置]只是其路径的一个细分
例如:
@views.html.users.interface()
如果不带任何参数,请确保将“()”放在语句末尾的括号中。如果没有“()”,您将收到如下错误消息:
“BaseScalaTemplate(play.api.templates…)
如果模板有参数,请确保在调用时包含这些参数,如下所示:
@views.html.users.interface( "name" )
当我使用“@navbar”时,它会显示以下内容:BaseScalaTemplate(play.api.templates.HtmlFormat$@5272b4dc),而不是实际的navbar.scala.html