播放框架:子模板中的依赖注入

时间:2018-06-21 10:31:09

标签: dependency-injection playframework twirl

我要使用Scala Templates Dependency Injection

在输入页面上使用它可以正常工作:

@this(assets: AssetsFinder)
@(projConfig: ProjectConfig)

@main(projConfig) (assets){
  <h1>Sidebar</h1>

} {
  <h1>Home page</h1>
}

但是如果我想在像main这样的子模板中做到这一点,就不会了。

@this(assets: AssetsFinder)
@(projConfig: ProjectConfig)(content:Html)

<!DOCTYPE html>
<html>
    <head>
        <title>@projConfig.pageTitle</title>
    </head>
    <body>
        @content
    </body>
</html>

这是不可能的还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

在外部模板的@this参数列表中指定子模板作为参数。例如,假设main的全名是views.html.main,我们有

@this(assets: AssetsFinder, main: views.html.main)
@(projConfig: ProjectConfig)

@main(projConfig) {
  <h1>Sidebar</h1>

} {
  <h1>Home page</h1>
}