1

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

@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 -> "")

我需要做什么才能使它起作用?

4

1 回答 1

3

您必须定义一个 vargs 字段。在 Scala 中,这由星号表示。有关更多详细信息,请参阅此答案

您的代码将如下所示:

@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)>
  }
}
于 2013-01-21T22:40:58.793 回答