Scala 在Lift中,使用内联函数生成JObject

Scala 在Lift中,使用内联函数生成JObject,scala,lift,lift-json,Scala,Lift,Lift Json,在JavaScript中,尤其是在jQuery中,有一个带有文本参数的函数调用,并且该参数的字段是内联匿名函数是很常见的。像这样: $(function () { $("#mylist").sortable({ placeholder: "ui-state-highlight", stop: function () { alert('Hello!'); } }); }); 有可能从电梯里打这样的电话吗?就我所知: "#jsonScript" #&

在JavaScript中,尤其是在jQuery中,有一个带有文本参数的函数调用,并且该参数的字段是内联匿名函数是很常见的。像这样:

$(function () {
    $("#mylist").sortable({
        placeholder: "ui-state-highlight",
        stop: function () { alert('Hello!'); }
    });
});
有可能从电梯里打这样的电话吗?就我所知:

"#jsonScript" #> Script(js.jquery.JqJsCmds.JqOnLoad(
    js.jquery.JqJE.Jq("#mylist") ~> js.JE.JsFunc("sortable", JObject(
        JField("placeholder", JString("ui-state-highlight")) ::
        JField("stop", js.JE.AnonFunc(js.JsCmds.Alert("Hello!"))) ::
        Nil
    ))
))
编译器抱怨
AnonFunc
不是
JValue
,这是绝对正确的:它不是。但是在JavaScript中,
函数(){}
调用是文本对象字段的合法值。我怎样才能让Lift知道

这里的长期目标是使职能机构最终成为:

SHtml.jsonCall( JE.Call("jsFunction"), liftFunction _ )

这是我不久前给那些想将Lift与jquery autocomplete集成的人的一个答案,jquery autocomplete使用类似的回调方法:

我需要使用JsObj:

def render = 
    "#jsonScript *" #> js.jquery.JqJsCmds.JqOnLoad(
        js.jquery.JqJE.Jq("#mylist") ~> js.JE.JsFunc("sortable", js.JE.JsObj(
            ("placeholder", "ui-state-highlight"),
            ("stop", js.JE.AnonFunc(SHtml.jsonCall( JE.Call("jsFunction"), liftFunction _)))
        ))
    ).cmd