3

Play 2.0 模板中是否可以有辅助构造函数?

4

1 回答 1

2

通过“构造函数”,我假设您的意思是具有不同参数的参数列表。我不知道这样做的内置方法,但我才刚刚开始学习 Play。

但是,您可以使用Enhance My Instance ™ 模式来实现相同的效果:

使用待办事项列表示例,假设您的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对象。

于 2012-04-22T11:14:08.987 回答