3

「Exploring Lift」ブックから次の例を実行しようとしています (小さな変更を加えて、つまり、XML バインディングよりも CSS バインディングを優先しました)。

object Hello {
  import js.{JxMap, Jx, JsCmds, JE}
  import JE._
  import net.liftweb.http.SHtml._
  import net.liftweb.util.BindHelpers._
  import JsCmds._

  val names = "marius" :: "tyler" :: "derek" :: "dave" :: "jorge" :: "viktor" :: Nil
  def ajaxian =
    "#text" #> ajaxText("Type something", {value => {
      val matches = names.filter(e => e.indexOf(value) > -1)
      SetHtml("items_list", NodeSeq.Empty) &
      JsCrVar("items", JsArray(matches.map(Str(_)):_*)) &
      JsCrVar("func", Jx(<ul>{
        JxMap(JsVar("it"), Jx(<li>{JsVar("it")}</li>))
      }</ul>).toJs) &
      (ElemById("items_list") ~> JsFunc("appendChild", Call("func", JsVar("items"))))
    }})
}

しかし、同じ名前のリストの名前ではなく、HTML ページにレンダリングすると、「JsExp(it)」アイテムのリストを取得し続けます。行に何か問題があるはずです

JxMap(JsVar("it"), Jx(<li>{JsVar("it")}</li>))

Lift には JavaScript 抽象化レイヤーに関するドキュメントがなく、本の対応する章を読んだり、Lift のソースを閲覧したりしても、何が起こっているのか理解できません。私が今まで理解できた唯一のことは、パラメータを使用してJx作成AnonFuncすることですが、デレクが彼の本で提供した例でのit正しい使用法に自分自身を納得させることはできません.JsVar("it")

4

0 に答える 0