为不同的表单字段指定不同的FieldConstructor的更好方法是什么?

时间:2014-02-19 17:28:43

标签: scala playframework-2.0

我正在使用Play框架2和表单与Bootstrap 3,因此需要逐个字段地更改输入元素周围的标记。我已经阅读了有关为每个字段创建和指定不同FieldConstructor值的答案,但这看起来过于复杂,前端开发人员/设计人员难以理解。所以我正在寻找一种更直接的方式。

到目前为止,我已经能够创建一个帮助程序,让我可以内联定义FieldConstructor模板:

views/helper/forms/customField.scala.html

@(createElement: (views.html.helper.FieldConstructor) => Html)(template: (views.html.helper.FieldElements) => Html)
@createElement(
    views.html.helper.FieldConstructor(template)
)

然后我可以在每个视图中执行此操作:

@customField(implicit fc => helper.inputText(loginForm("email"),
    'id -> "txtEmail", 'placeholder -> "Email address"
)) { f =>
    <div class="form-group @if(f.hasErrors) {has-error}">
        <label class="sr-only" for="@f.id">Email address</label>
        @f.input
        @if(f.hasErrors){
            <div class="help-block"> @f.errors.mkString(", ")</div>
        }
    </div>
}

有没有更好的方法来做到这一点,所以我可以减少第二块中的一些混乱?这种方法是否存在任何问题,例如在性能方面,例如每次呈现表单时重新创建FieldConstructor?

0 个答案:

没有答案