Ajax scala lift中的作用域javascript回调

Ajax scala lift中的作用域javascript回调,ajax,scala,callback,closures,lift,Ajax,Scala,Callback,Closures,Lift,所以我一直在Scala玩Lift,我很享受它。我可能只是缺少了lift javascript库中存在的一些东西,但是我还没有找到任何使用作用域javascript回调的方法。处理回调的lift方法似乎是将回调作为函数名传递,并让lift返回一个调用函数的JsCmd() 我的电梯代码主要基于此示例 我的javascript看起来有点像 function operation(config) { var actions = config.actions, action = ac

所以我一直在Scala玩Lift,我很享受它。我可能只是缺少了lift javascript库中存在的一些东西,但是我还没有找到任何使用作用域javascript回调的方法。处理回调的lift方法似乎是将回调作为函数名传递,并让lift返回一个调用函数的JsCmd()

我的电梯代码主要基于此示例 我的javascript看起来有点像

function operation(config) {
    var actions = config.actions,
        action = actions.shift(),
        name = config.name;

    function chainAction(response) {
        if (actions.length > 0) {
            action = actions.shift();
            action.action(name, chainAction);
        }
    }

    action.action(name, chainAction);
}

operation({
    name: "ajax",
    actions: [
        { action: ajaxCall1 },
        { action: ajaxCall2 }
    ]
});
我希望ajaxCall1和ajaxCall2成为对lift的AJAX调用。i、 在提升示例中为e.callNoParam(),而chainAction为作用域回调。在电梯里有没有我不知道的方法?为了清楚起见,我已经能够让这段代码调用lift函数,但无法正确处理回调

谢谢

编辑

在阅读lift生成的javascript代码时,看起来确实存在成功/失败回调的占位符。特别是,它看起来像这条电梯线

AllJsonHandler.is.jsCmd
正在生成这行javascript

function F86737576748N5SY25(obj) {liftAjax.lift_ajaxHandler('F86737576748N5SY25='+ encodeURIComponent(JSON.stringify(obj)), null,null);}
哪个引用了这个方法

lift_ajaxHandler: function(theData, theSuccess, theFailure, responseType)

但不允许我将成功或失败传递给jQuery.ajax()调用。我的调查还在继续。如果有人在is.jsCmd上有任何好的资源,我们将不胜感激。

下面是一段代码,它向页面添加了一个Javascript函数
doCallback
(在
#占位符
中)。此函数将向控制台打印一行,然后向服务器回拨函数
commandCallback

def addExecuteCallback(ns: NodeSeq):NodeSeq = {
  val log = JsRaw("console.log('[doCallback] Generated from Lift.');").cmd &
            SHtml.ajaxCall(JsRaw("commandString"), commandCallback _)._2.cmd
  val f = JsCmds.Function("doCallback", List[String](), log)
  ("#placeholder" #> JsCmds.Script(f)).apply(ns)
}
commandCallback
的末尾,您可以返回:


JsCmds.Run(“chainAction(“+valueOfResponse+”);”

您是否尝试过
SHtml.ajaxCall
函数?我不知道这是否是你想要的。你没有得到答案的部分原因是这个问题确实令人困惑。如果我能确定你想要什么,我想我可以回答。似乎您希望Javascript函数使用AJAX在服务器端调用某些内容,服务器端部分将在响应完成后调用
chainAction(response)
。对吗?