javascript内に(単一のオブジェクト内に)APIのシステムを作成したいのですが、そのすべてがjQueryのajax関数に由来しますが、次のようにトリガーされるオーバーライド「成功」関数を渡すことができるようにしたいです。
function Eidos(){
this.api = function(data, success){
$.ajax({
type: 'POST',
url: '/api',
data: data,
success: function(rData){
return rData;
}
})
};
this.refreshInfo = function(id, success){
log.info('refreshed page id: '+ id);
return this.api({'command': 'refresh', 'pageid': id}, success);
}
};
この例では、情報を「更新」したいだけです(新しいテキストデータまたは何を持っているかを取得します)。すでにサーバー側のページ設定があります。
そして、私はそれを次のように呼び出します:
$('.refresh').click(function(){
$("#myModal").modal('show');
var id = $(this).data('ei');
var api = eidos.refreshInfo(id, function(){
$("#myModal").modal('hide');
});
return false;
});
明らかにこれは機能しません(ところで、オブジェクトはすでにvar eidos = new Eidos();を介して作成されています)が、Idkはそれを実装する方法を説明します。成功したいのですが、関数がページごとに異なる動作をするため、オーバーライドが必要になりますが、ここでそれを機能させる方法がわかりません。