templates - 在 play 2.0 scala 中包含 scala.html 文件

标签 templates scala playframework-2.0

我正在尝试使用 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>

并保存在views/下,然后使用@importviews.navbar导入它,但随后我收到一条错误消息,指出“navbar不是 View 的成员”。我正在 Eclipse Java EE IDE indigo 中编写此内容(如果有帮助的话)。

最佳答案

不要导入它,而只是调用它:

@navbar()

关于templates - 在 play 2.0 scala 中包含 scala.html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10624983/

相关文章:

c++ - operator << friend 函数和模板

python - Scala 嵌套列表

scala - Play Framework - 存储有关当前请求的信息

scala - 我什么时候应该在 Scala 中创建带有隐式参数的方法?

scala - Play framework 2.0 - deadLetters 而不是 Actor

c++ - 访问模板参数的 protected 成员

django 模板 - 解析字符串变量中的变量

C++ 模板类型是否为指针

scala explode 方法 Cartesian product multiple array

scala - Play Framework 2.5 scala i18n