如何将args传递给我在Play 2中编写的自定义方法?

时间:2013-01-21 21:43:11

标签: java scala playframework playframework-2.0

我在Play Framework 2 scala模板中编写了一个方法来生成日期/时间输入。我不知道如何将_label之类的html args传递给它。

@dateField(field: Field, timeName: String)(implicit handler: FieldConstructor, lang: play.api.i18n.Lang) = {
    @input(field, '_showConstraints -> false) { (id, name, value, args) =>
        <input type="text" value="@value" name="@name" @toHtmlArgs(args)>
        <input type="text" value='@eventForm(timeName).value()' name="@timeName" />
    }
}

我希望能够调用它来生成一个没有标签的字段:

@dateField(eventForm("event.endDate"), "event.endTime", '_label -> "")

我需要做些什么才能工作?

1 个答案:

答案 0 :(得分:3)

您必须定义vargs字段。在Scala中,这用星号表示。有关详细信息,请参阅this answer

您的代码将如下所示:

@dateField(field: Field, timeName: String, more: (Symbol, Any)*)(implicit handler: FieldConstructor, lang:  play.api.i18n.Lang) = {
  @input(field, ('_showConstraints -> false :: more.toList) : _*) { (id, name, value, args) =>
    <input type="text" value="" name="@name" @toHtmlArgs(args)>
  }
}