是否可以在Play 2.0模板中使用辅助构造函数?
答案 0 :(得分:2)
通过“构造函数”,我假设您的意思是具有不同参数的参数列表。我不知道有这样做的内置方法,但我只是刚开始学习Play。
但是,您可以使用增强我的实例™模式来达到同样的效果:
使用to-do list example,假设您的index.scala.html
模板开始:
@(tasks: List[Task], taskForm: Form[String])
在Application.scala
中,您可以使用
def tasks = Action { Ok(views.html.index(Task.all(), taskForm)) }
如果您想省略任务列表:
implicit def enhanceIndex(index: views.html.index.type) = new {
def apply(f: Form[String]) = index(List.empty, f)
}
现在你可以这样称呼它:
def tasks2 = Action { Ok(views.html.index(taskForm)) }
这基本上就是pimp-my-library模式,使用.type
将范围缩小到特定实例,在本例中为views.html.index
对象。