[英]extending helper inputRadioGroup play2
我通过遵循docs创建了自己的字段构造函数,根据我的需要呈现了字段的html。
现在,我想扩展@helper.inputRadioGroup
以符合我的需求。
我当前的模板如下所示:
@(smsReviewForm: Form[SmsReview], grades: Seq[Grade])
@helper.inputRadioGroup(smsReviewForm("grade"),
options = grades.map(g => g.value.toString -> g.name)
)
结果是:
<div class="clearfix ">
<label for="grade">grade</label>
<span class="buttonset" id="grade">
<input type="radio" id="grade_1" name="grade" value="1">
<label for="grade_1">Brilliant</label>
<input type="radio" id="grade_2" name="grade" value="2">
<label for="grade_2">Good</label>
<input type="radio" id="grade_3" name="grade" value="3" checked="">
<label for="grade_3">Ok</label>
</span>
<span class="help-inline">Numeric</span>
</div>
我想要的是创建一个将呈现的@helper.customInputRadioGroup
:
<div class="clearfix ">
<label for="grade">grade</label>
<span class="buttonset" id="grade">
<input type="radio" id="grade_1" name="grade" value="1" class="hover-star star_on">
<input type="radio" id="grade_2" name="grade" value="2" class="hover-star star_on">
<input type="radio" id="grade_3" name="grade" value="3" checked="" class="hover-star star_on">
</span>
<span class="help-inline">Numeric</span>
</div>
如何以及在哪里实现我自己的customInputRadioGroup?
您可以在播放源代码中查看其他视图助手的工作方式
如果将以下代码放入项目的views.helper
,则应获得所需的内容:
@(field: play.api.data.Field, options: Seq[(String,String)], args: (Symbol,Any)*)(implicit handler: FieldConstructor, lang: play.api.i18n.Lang)
@input(field, args:_*) { (id, name, value, htmlArgs) =>
<span class="buttonset" id="@id">
@options.map { v =>
<input type="radio" id="@(id)_@v._1" name="@name" value="@v._1" @(if(value == Some(v._1)) "checked" else "") @toHtmlArgs(htmlArgs)>
}
</span>
}
我想知道是否真的有必要创建自定义视图帮助程序,而只剩下多余的标签,也许您可以用一点CSS来达到相同的视觉效果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.