SCALA Lift - 用Comet演员的params调用javascript

时间:2011-10-09 17:26:14

标签: scala lift

我正在尝试让一个彗星课程用params调用一些javascript,但似乎无法找到合适的方法。

到目前为止,我有:

case class StreamItem(name: String, path: String, level: String)

class StreamComet extends CometActor with CometListener {

    private var streams: List[StreamItem] = Nil 

    def registerWith = StreamServer

    override def lowPriority = {

        case v: List[StreamItem] => streams = v; reRender()

    }

    def render = {

        "li *" #> streams.map(stream =>

            ".name *" #> stream.name &
            ".stream [id]" #> stream.path.toString

        )

    }

}


object StreamServer extends LiftActor with ListenerManager {

    private var streams: List[StreamItem] = Nil

    def createUpdate = streams

    override def lowPriority = {

        case stream: String if stream.length > 0 =>

            streams :+= StreamItem("James", stream, "_1");
            updateListeners()

    }

}

我现在需要做的是使用新添加的流调用已经定义的javascript函数。因此,当提交ajax表单并将值发送到StreamServer时,在StreamComet渲染方法的某处,我需要使用流列表中的特定项调用javascript函数来更新DOM。不确定这是否是正确的方法。

非常感谢任何帮助,提前谢谢

1 个答案:

答案 0 :(得分:0)

你可以尝试

import net.liftweb.http.js.JE.JsRaw
JsRaw("myJSFunction(myParam)").cmd