在我的播放旋转模板中显示一个简单的复选框

时间:2017-03-15 19:13:33

标签: html scala playframework

呈现我的复选框的HTML包含所有这些奇怪的HTML?

<dl class=" " id="unSubscribe_field">
    <dt><label for="unSubscribe">unSubscribe</label></dt>
    <dd>
        <input type="checkbox" name="unSubscribe" id="unSubscribe" >
    </dd>
    <dd class="info">format.boolean</dd>
</dl>

我只是想在屏幕上显示一个简单的复选框,我不需要所有这些标签和dd标签。

我甚至使用自定义方式呈现标记:

@helper.input(form("unSubscribe")) { (id, name, value, args) =>
    <input type="checkbox" name="@name" id="@id" >
}

我的案例类是:

case class SubscriptionManageForm(token: Option[String], unSubscribe: Boolean)

如何显示简单的输入复选框标记?以下是当前裁员的屏幕截图:

enter image description here

2 个答案:

答案 0 :(得分:2)

模板使用的是默认FieldConstructor,因为您没有将自己的FieldConstructor指定为隐式值。

要编写自己的字段构造函数,首先要编写一个名为myFieldConstructor.scala.html的模板,其中包含以下行:

@(elements: helper.FieldElements)
@elements.input

然后,在视图模板中,为FieldConstructor内联设置隐式值:

@import helper._
@implicitField = @{ FieldConstructor(myFieldConstructor.f) }

@helper.input(form("unSubscribe")) { (id, name, value, args) =>
                <input type="checkbox" name="@name" id="@id" >
            }

模板将使用您的自定义字段构造函数来呈现输入文本,如myFieldConstructor.scala.html中所述。

此处提供更多信息:https://www.playframework.com/documentation/2.5.x/ScalaCustomFieldConstructors

答案 1 :(得分:1)

“我只是想在屏幕上显示一个简单的复选框。”如果您不想使用模板,可以创建一个简单的复选框。

<label>
    Unsubscribe? <input type="checkbox" id="test1" name="test1">
</label>

or iterating over server items...

@for(item <- model.getItems()) {
    <label>
	@item.labelText <input type="checkbox" name="@item.name" id="@item.id">
    </label>
}

我的观点是,你可以保持尽可能简单。如果Play模板添加了混淆,那么使用基本HTML保持简单。