SCALA Lift - вызов javascript с параметрами от актера кометы - PullRequest
2 голосов
/ 09 октября 2011

Я пытаюсь заставить кометный класс вызвать некоторый 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 голосов
/ 16 октября 2011

Вы можете попробовать

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