Cyr*_* N. 3 templates scala playframework-2.0
使用doc,我可以为我的领域设置我自己的帮助器,但是我也希望个性化游戏给出的一些字段.
主要原因是Twitter Bootstrap 2,我需要更改(在checkbox.scala.html中)
@input(field, args:_*) { (id, name, value, htmlArgs) =>
<input type="checkbox" id="@id" name="@name" value="@boxValue" @(if(value == Some(boxValue)) "checked" else "") @toHtmlArgs(htmlArgs.filterKeys(_ == 'value))>
<span>@args.toMap.get('_text)</span>
}
Run Code Online (Sandbox Code Playgroud)
至 :
<label class="checkbox">
<input type="checkbox" name="@name" id="@id" value="@boxValue" @(if(value == Some(boxValue)) "checked" else "") @toHtmlArgs(htmlArgs.filterKeys(_ == 'value)) />
@args.toMap.get('_text)
</label>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?谢谢你的帮助!
我终于做到了这样:
我创建了一个包views.helpers.form,它包含:
bootstrap.scala.html:
@(elements: helper.FieldElements)
<div class="control-group@if(elements.hasErrors) { error}">
<label class="control-label" for="@elements.id">@elements.label(elements.lang)</label>
<div class="controls">
@elements.input
@elements.infos(elements.lang).map { info =>
<span class="help-inline">@info</span>
}
@elements.errors(elements.lang).map { error =>
<span class="help-block">@error</span>
}
</div>
Run Code Online (Sandbox Code Playgroud)
checkbox.scala.html:
@**
* Generate an HTML input checkbox.
*
* Example:
* {{{
* @checkbox(field = myForm("done"))
* }}}
*
* @param field The form field.
* @param args Set of extra HTML attributes ('''id''' and '''label''' are 2 special arguments).
* @param handler The field constructor.
*@
@(field: play.api.data.Field, args: (Symbol,Any)*)(implicit handler: helper.FieldConstructor, lang: play.api.i18n.Lang)
@boxValue = @{ args.toMap.get('value).getOrElse("true") }
@helper.input(field, args:_*) { (id, name, value, htmlArgs) =>
<label class="checkbox">
<input type="checkbox" id="@id" name="@name" value="@boxValue" @(if(value == Some(boxValue)) "checked" else "") @toHtmlArgs(htmlArgs.filterKeys(_ == 'value))>
@args.toMap.get('_text)
</label>
div>
</div>
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我所要做的就是:
@import helper.{FieldConstructor, inputText, inputPassword} @** Import the original helpers *@
@import helpers.form.checkbox @** Import my helpers *@
@implicitField = @{ FieldConstructor(helpers.form.bootstrap.f) }
Run Code Online (Sandbox Code Playgroud)
瞧!有用!