所以我一直在斯卡拉升降梯玩弄,我一直很享受它。我可能会错过升降机JavaScript库中存在的东西,但我一直无法找到任何使用范围JavaScript回调的方式。看来,处理回调的提升方式是将回调作为函数名称传递,并使提升返回一个JsCmd,即Call()的函数。斯卡拉升降机的范围JavaScript回调
我的升降代码是大量基于这个例子http://demo.liftweb.net/json_more 而我的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,是AJAX调用解除。即电梯例子中的callNoParam(),以及chainAction作为范围回调。有没有办法在电梯中这样做,我失踪了?为了清楚起见,我已经能够获得此代码来调用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)
但不是让我通过theSuccess或theFailure看起来他们正在传递给jQuery.ajax()调用。我的调查继续。如果任何人有任何有关is.jsCmd的良好资源,将不胜感激。
你试过了'SHtml.ajaxCall'功能?我不知道这是你在找什么。 –
你没有得到答案的部分原因是这个问题真的很混乱。如果我能确定你想要什么,我想我可以回答它。看来你需要一个Javascript函数来使用AJAX在服务器端调用某些东西,然后服务器端部分在响应完成时调用'chainAction(response)'。那是对的吗? –