Domanda

cerco di copiare gli esempi in wiki http://wiki.liftweb.net/index.php/Hello_Darwin

nell'esempio di HelloForm2.scala

"submit" -> submit(?("Send"), () => {println("value:" + who + " :: " + param("whoField"))}),

Esso stampa sempre

value:Full(hogehoge) :: Empty" even if i set the who as "object who extends RequestVar(Full("world"))

Sono faccio qualcosa di sbagliato?

dispiace per dimenticare di inserire il codice completo, ho già provo il secondo nel wiki come qui di seguito. index.html

<lift:surround with="default" at="content">
<h2>Welcome to your project!</h2>
<lift:HelloWorld.show form="POST">
    Hello <hello:who />
    <br />
    <label for="whoField">Who :</label>
    <hello:whoField />
    <hello:submit />
</lift:HelloWorld.show>
</lift:surround>

e HelloWorld.scala

class HelloWorld {
  object who extends RequestVar(Full("world"));
  def show(xhtml: NodeSeq): NodeSeq ={
    bind("hello", xhtml,
      "whoField" -> text(who.openOr(""), v => who(Full(v))) % ("size" -> "10") % ("id" -> "whoField"),
      "submit" -> submit(?("Send"), () => {println("value:" + who.openOr("") + " :: " + param("whoField"))}),
      "who" -> who.openOr("")
    )
  }
}

ora, il che mostra corretto nella pagina visualizzata, ma console ancora stampe value:hogehoge :: Empty

im utilizzando ascensore 1.0

Grazie.

È stato utile?

Soluzione

È necessario modificare il codice che troppo, come mostrato nell'esempio nella pagina wiki, che io copio qui:

  bind("hello", xhtml, 
       "whoField" -> text(who.openOr(""), v => who(Full(v))) % ("size" -> "10") % ("id" -> "whoField"),
       "submit" -> submit(?("Send"), () => {println("value:" + who.openOr("") + " :: " + param("whoField"))}),
       "who" -> who.openOr("")
  )

Si noti che whoField è definito in modo molto diverso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top