liftScreen проверяет пользовательские поля - PullRequest
1 голос
/ 26 января 2012

Я следую примеру, приведенному в подъемной вики .Интересно, как дать проверки типа valMinLen(length,msg) при создании настраиваемого поля.Я пробовал разные способы, но безуспешно.

Пожалуйста, приведите пример предоставления проверок для специально созданного поля.

edit -

извините, если вопрос выше не ясен, это пример на сайте ассембла,

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 _) 
  } 
} 

Здесь мне нужно добавить проверку valMinLen, или мне нужен доступ к сгенерированной строке ошибки, чтобы заменить еес моим.Возможно ли это

1 Ответ

1 голос
/ 11 июня 2012

Как объяснено в Использование поля или текста LiftScreen , существует несколько способов создания настраиваемого поля.

Если вы используете метод makeField в LiftScreen, вы можете сказатьнапример:

makeField[String](
      title,
      "",//"No phone number entered",
      field => SHtml.text("", (_:String)=>{registerThisSnippet()}, ("class","phone")),
      valMinLen(length,msg)
)

Если вы хотите использовать более подробное, но подробное явное создание объекта, как в опубликованном вами примере, вам нужно проверить, где в классе Field находится свойство для проверок.

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 _) 
    override def validations = valMinLen(length,msg) _ :: super.validations
  } 
} 

Для очень полного примера посмотрите превосходный рецепт Lift Cookbook для проверок .

...