Frage

Ich versuche, die Beispiele in Wiki zu kopierenhttp://wiki.liftweb.net/index.php/hello_darwin

Im Beispiel von HelloForm2.Scala

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

Es druckt immer

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

Mache ich etwas falsch?

Tut mir leid, dass ich vergessen habe, den vollständigen Code zu veröffentlichen. Ich versuche den zweiten im Wiki bereits wie unten. 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>

und 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("")
    )
  }
}

Jetzt zeigt die WHO korrekt auf der gerenderten Seite, aber die Konsole druckt immer nochvalue:hogehoge :: Empty

Ich benutze Lift 1.0

Danke.

War es hilfreich?

Lösung

Sie müssen diesen Code auch ändern, wie im Beispiel auf der Wiki -Seite gezeigt, die ich hier kopieren werde:

  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("")
  )

Beachten Sie, dass Whofield sehr unterschiedlich definiert ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top