Backbone + RequireJS プロジェクトを作成していて、次の状況に遭遇しました。
モジュール A:
Backbone.Mediator.publish('ajax:fetch:in:module:b');
// I need to do something like **$.ajax(options).done()** here
モジュール B:
subscriptions: {
'ajax:fetch:in:module:b': fetch
},
fetch: {
$.ajax(options);
}
$.ajax(options)
モジュール Bの共有名前空間 ( など) の下でフックしてから、モジュール A 内cache.temp = $.ajax(options)
で呼び出しようとしましたが、それは が作成されるcache.temp.done()
前に発生したため、単に.$.ajax(options)
cache.temp
undefined
この問題を解決する 1 つの方法は、準備が整う前にコードの実行を遅らせる deferred を作成することだと思いますが、これが実行$.ajax(options)
可能かどうかはよくわかりません。または、より良いアイデアがあれば、私はすべて耳を傾けます。