在我的特殊情况下,我有一个在所有页面上呈现的菜单。菜单内容使用 slick 从数据库加载并隐式传递给视图。整个事情看起来像这样:
控制器
class Application @Inject()(
implicit val menuContext: MenuContext
) extends Controller {
def index = Action.async {
val content: Future[Content] = getContent
content.map(c => Ok(views.html.index(c)))
}
}
菜单上下文
class MenuContext {
val models: Future[List[SomeModel]] = getModelsFromDB
}
看法
@(content: Content)(implicit menuContext: MenuContext)
...
@menuContext.models // how to access my actual model and not the Future?
...
如何List[SomeModel]
在我的视图中访问?Action.async
传递隐式参数是否有等价物?或者对于(几乎)所有视图中需要的东西,是否有更好的解决方案?