1

我不想为我的每个视图的 inputText 定义 arg '_showConstraints -> false。

@inputText(taskForm("name"), '_showConstraints -> false )

我该怎么做才能将此值默认为 false ?

我在 ./play/src/main/scala/views/helper/Helpers.scala 中找到了一些关于这个 arg 的东西:

def infos(implicit lang: play.api.i18n.Lang): Seq[String] = {
  args.get('_help).map(m => Seq(m.toString)).getOrElse {
    (if (args.get('_showConstraints) match {
      case Some(false) => false
      case _ => true
    }) {
      field.constraints.map(c => play.api.i18n.Messages(c._1, c._2: _*)) ++
        field.format.map(f => play.api.i18n.Messages(f._1, f._2: _*))
    } else Nil)
  }
}

我完全是 scala 的新手,我怎么能在我的项目中覆盖 Helpers.scala 的这部分代码?

(PS:我不考虑编辑 ./play/src/main/scala/views/helper/Helpers.scala 作为解决方案)

4

1 回答 1

1

创建您自己的 FieldConstructor(更多信息在这里:http ://www.playframework.com/documentation/2.3.x/JavaFormHelpers ),并指定类似的东西:

@if(elements.args.get('_showConstraints).map{ _ == true}.getOrElse(false)) {
    <pre class="help-block">@elements.infos(elements.lang).mkString(", ")</pre>
}

现在约束只会在您指定时显示:

@helper.inputText(form("name"), '_showConstraints -> true)
于 2014-07-05T12:03:21.187 回答