2

我有一个带有动作的控制器:

def index = Action { implicit request =>
  Ok(views.html.index(MyModel.all)
}

以及具有以下参数的索引视图:

@(my_models : List[MyModel])(implicit flash : Flash)

似乎我需要同时拥有这两个隐式才能访问闪存而不显式传递它。这就是我认为 flash 隐式的工作方式:如果在没有显式 flash 参数的情况下调用模板,那么编译器将在调用视图函数的范围内查找标记为隐式的 Flash。这个闪光是从哪里来的?该请求被标记为隐式,但它不是 Flash。我知道该请求有一个 flash 成员,但根据我对implicits 的理解,我看不到视图将如何访问它。

4

1 回答 1

3

您的方法index是某个类的一部分,即 extends Controller,因此所有方法Controller都在范围内。

有隐式flash方法Controller

 implicit def flash (implicit request: RequestHeader): Flash

因此,如果您RequestHeader在范围内具有隐式,则可以将其转换为Flash隐式。`

于 2013-07-27T06:08:30.720 回答