Lift的JavaScript抽象层

时间:2012-04-22 17:45:25

标签: javascript scala lift

我正在尝试从“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>))

缺少JavaScript抽象层的文档,阅读书中的相应章节,浏览Lift的来源并不能让我了解正在发生的事情。我唯一可以理解的是,Jx创建了带有AnonFunc参数的it,但我不能说服自己在Derek提供的示例中正确使用JsVar("it")在他的书中。

0 个答案:

没有答案