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