gpt4 book ai didi

playframework - Play Framework 2.1 中的多字段构造函数?

转载 作者:行者123 更新时间:2023-12-01 10:54:44 25 4
gpt4 key购买 nike

我正在尝试在 scala 文档中构建自定义 FieldConstructor。

我按照说明构建了一个 twitterBootstrapInput.scala.html ,并且有效...

这是我的输出:

output screenshot

问题来了:

我想要 @helper.inputRadioGroup “水平”跨越,而不是垂直跨越。

(因为 twitterBootstrapInput.scala.html 扭曲 @elements.input<div> block 中)

但我不知道如何在不感染其他“文本字段”的情况下修改模板?

我应该定义另一个 implicitFieldConstructor 吗?还是做点别的?

我找不到关于如何解决这个问题的例子......

所有的自定义模板文档都太稀有了...

有人能给我举个例子吗?谢谢!

这是我的代码(玩2.1):

@import views.html.helper.FieldConstructor
@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) }

@helper.inputRadioGroup(consultForm("currency")
, options = Seq(
"USD" -> "USD"
, "HKD" -> "HKD"
, "RMB" -> "RMB")
, '_label -> "Currency"
, '_error -> consultForm("currency").error.map(_.withMessage("select currency"))
)

======== 2011 年 4 月更新 ==============

感谢@Schleichardt 为我迈出了第一步。我附加 (FieldConstructor(twitterBootstrapRadioGroup.f) , lang)inputRadioGroup之后,它似乎工作。但是,即使我写的是最简单的@elements.input在模板中(没有其他装饰),它仍然垂直跨越。如下截图:

enter image description here

输出的html源代码是:

enter image description here

如何修改<span class="buttonset" ...>堵塞 ?我不应该调用@elements.input吗?在模板中?

最佳答案

简短版:

@(consultForm: Form[Consult])(implicit lang: play.api.i18n.Lang)

@import views.html.helper.FieldConstructor
@implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) }

@* uses twitterBootstrapInput */
@helper.inputText(consultForm("name"))

@* uses anotherFieldConstructor */
@helper.inputRadioGroup(consultForm("currency")
, options = Seq(
"USD" -> "USD"
, "HKD" -> "HKD"
, "RMB" -> "RMB")
, '_label -> "Currency"
, '_error -> consultForm("currency").error.map(_.withMessage("select currency"))
)(FieldConstructor(anotherFieldConstructor.f), lang)


@* uses twitterBootstrapInput */
@helper.inputText(consultForm("anotherFormFieldName"))

anotherFieldConstructor 是您必须创建的附加 FieldConstructor。它应该根据您的需要放置单选按钮。

长版:

inputRadioGroup 的 API DOC 在这里:http://www.playframework.com/documentation/api/2.1.0/scala/index.html#views.html.helper.inputRadioGroup $

由于 inputRadioGroup 是 Scala 单例对象,因此以下代码语句是相同的:

helper.inputRadioGroup(consultForm("currency") /* etc. */)
helper.inputRadioGroup.apply(consultForm("currency") /* etc. */)

inputRadioGroup的apply方法有两个参数列表。第二个列表使用隐式参数。

使用 @implicitFieldConstructor = @{ FieldConstructor(twitterBootstrapInput.f) } 您指定,twitterBootstrapInput FieldConstructor 是第二个参数列表中处理程序的“默认参数” inputRadioGroup 的。

但是你可以用显式参数覆盖它:

helper.inputRadioGroup(consultForm("currency") /* etc. */)(FieldConstructor(anotherFieldConstructor.f), lang)

如果您使用 Scala Controller ,模板需要一个额外的 lang 参数列表:

@(consultForm: Form[Consult)])(implicit lang: play.api.i18n.Lang)

模板中不能有两个隐式 FieldConstructor。

关于playframework - Play Framework 2.1 中的多字段构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com