我正在使用 LiftScreen
trait 并且我对 field 和 text 方法有疑问。文本方法使用 makeField
方法,然后是 SHtml.text
渲染字段,而 field
方法使用 FormVendor
特征来呈现 html。
那么添加字段的最佳方法是什么?我必须使用字段方法还是文本/密码/等方法?
谢谢你。
最佳答案
字段方法是使用字段生成器创建字段的一些语法糖。它使用来自该生成器的默认值来创建字段。
makeField 方法允许精确指定您的字段。
因此,没有“一个最佳答案”。如果您对 FormVendor 创建的默认字段感到满意,请使用它们。如果您需要对字段进行更具体的控制,请使用 makeField。
makeField 有效地接受给它的参数,并使用它们来创建自定义字段。例如,makeField("Password", "", SHtml.password(is, set _))
实际上等于
object MyScreen extends LiftScreen {
val password = new Field {
type ValueType = String
override def name = "Password"
override implicit def manifest = buildIt[String]
override def default = ""
override def toForm: Box[NodeSeq] = SHtml.password(is, set _)
}
}
(取自 Adding Custom Field Types to LiftScreen)
这仅适用于一个 LiftScreen。如果您需要在多个 LiftScreen 上使用自定义字段,请创建一个独立的特征,Lift Wiki声明“您可以在 LiftRules.vendForm 中设置全局类型 → 表单供应商,用于应用程序范围的表单自动售货”。 This page特别是有一些示例代码和更多解释。
关于scala - 使用 LiftScreen 字段或文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008793/