假设我有此控制器的操作:
def getPost = Action { implicit request => Ok(views.html.post("bla bla bla")) }
现在我有两种布局:
// baseLayout.scala.html:
@(title: String)(content: Html)(implicit req: RequestHeader)
<html>
...
@content
...
</html>
和
// postLayout.scala.html:
@(title: String)(content: Html)(implicit req: RequestHeader)
@baseLayout(title) { // Error: Cannot find any HTTP Request Header here
<h1>Post</h1>
@content
}
然后我有这个模板:
// post.scala.html
@(post: String)(implicit req: RequestHeader)
@postLayout("First post") {
<div>@post</div>
}
此代码无法编译。我收到此错误
Cannot find any HTTP Request Header here (See up)
就像隐式RequestHeader
被成功传输一样:
从Action
到post
模板,
然后从post
模板到postLayout
模板。
但是它不会从postLayout
模板传输到baseLayout
模板。
我怀疑这是由于以下事实:在postLayout
模板中,隐式出现在Html
块之后,它可能会丢弃任何隐式传播。除此之外,我看不到任何重复,我完全迷失了。