私はScalaのリフトで遊んでいましたが、私はそれをたくさん楽しみました。私はちょうどリフトのjavascriptライブラリに存在するものを見逃しているかもしれませんが、スコープ付きjavascriptコールバックを使用する方法を見つけることができませんでした。コールバックを処理するリフト方法は、コールバックを関数名として渡し、リフトにJsCmdを返してCall()関数が返すようにしているようです。スカラリフトのスコープ付きjavascriptコールバック
マイリフトコードが重く、この例http://demo.liftweb.net/json_more に基づいており、私はajaxCall1とajaxCall2をしたいと思います
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 }
]
});
は、AJAXを持ち上げるために呼び出すことをちょっとのように私のjavascriptが見えています。リフトの例ではcallNoParam()、スコープ付きコールバックである場合はchainActionです。私が行方不明の揚力でこれを行う方法はありますか?明確にするために、私はリフト関数を呼び出すためにこのコードを取得できましたが、コールバックを正しく処理することはできませんでした。
ありがとうございました。
編集
リフト生成されたJavaScriptコードを読み込む際に、成功/失敗のコールバックのためのプレースホルダが実際にあるように、それが見えます。特に、
AllJsonHandler.is.jsCmd
のjavascriptのこの行を生成しているリフトのこの行のように見える
lift_ajaxHandler: function(theData, theSuccess, theFailure, responseType)
でもないが、私はtheSuccessまたはtheFailureを通過させる、このメソッドを参照する
function F86737576748N5SY25(obj) {liftAjax.lift_ajaxHandler('F86737576748N5SY25='+ encodeURIComponent(JSON.stringify(obj)), null,null);}
jQuery.ajax()呼び出しに渡されているように見えます。私の調査は続けられます。 is.jsCmdに誰かが良いリソースを持っていれば、それは高く評価されます。
あなたは 'SHtml.ajaxCall'機能を試してみましたか?あなたが探しているものなのかどうかわかりません。 –
あなたが答えを得ていない理由の一部は、その質問が本当に混乱しているということです。私はあなたが欲しいものを確かめることができるなら、私はそれに答えることができると思います。あなたはJavascript関数がAJAXを使ってサーバ側で何かを呼び出すようにしたいと思っています。そして、サーバサイドパートは、応答が完了したときに 'chainAction(response)'を呼び出します。あれは正しいですか? –