Play中的部分视图存在吗?

アレッ*_*ックス 6 scala playframework playframework-2.2

我没有在Play Framework中发现任何部分视图的概念,类似于Ruby on Rails的部分视图.例如,如果有layouts/main.scala.html布局:

@(title: String)(content: => Html)(implicit flash: Flash)
<!DOCTYPE html>
<html>
    <head>
        <title>@title</title>

    </head>
    <body>
        <section class="content">@content</section>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

而且还有layouts/_footer.scala.html"部分",我如何_footer加入main?Play中有类似内容吗?

Jam*_*per 18

我认为RoR的部分观点过于复杂.关于Play模板要记住的事情,因为它们本质上只是可以直接从Scala代码调用的函数.而且,Play模板本质上是Scala代码.这意味着,可以从其他Play模板调用Play模板.所以,只需创建另一个名为的模板footer.scala.html,例如:

<footer>
   Powered by Play Framework
</footer>
Run Code Online (Sandbox Code Playgroud)

然后从主模板中调用它,就像调用任何其他Scala函数一样:

@(title: String)(content: => Html)(implicit flash: Flash)
<!DOCTYPE html>
<html>
    <head>
        <title>@title</title>
    </head>
    <body>
        <section class="content">@content</section>
        @footer()
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

不可能更容易.

  • @Alex在这种情况下,`@ footer`必须在`views.html`命名空间中定义,该命名空间会自动为Play模板导入.如果它改为"app/views/common/footer.scala.html",那么它将改为`common.footer()`. (7认同)