現在、バックボーンに(またはその周辺に)奇妙な問題があります。私はカスタム成功とエラーのコールバックを置くバックボーンコレクションオブジェクトを持っています。'fetch'(Backbone.Collection上)の後に成功/エラーコールバックが呼び出されない
A)---->ワーキング
Fubars = Backbone.Collection.extend({ url: "/listfubar", model: Fubar, fetchS: function() { fetch( { success : sFn, error : eFn, statusCode : cFn }); }, }) var fbars = new Fubars(); fbars.fetchS();
B)----> 'Fubars.fetchS' は通常のJavaScriptによって呼び出されているとき、これが正常に動作します
afterPoll = function() { fbars.fetchS() }
を破りますファイルA)。しかし、fetchS(および指定のコールバック)自体が 'ajaxPoll'コールバックから呼び出されたときに問題が発生します。B)。 'fetchS'は適切に呼び出され、コールバックはすべて存在し、ネットワーク呼び出しはBackbone.sync> JQuery.ajaxによって行われます。しかしsuccess、error、またはstatusCodeコールバックは決して呼び出されません(ネットワークコールは間違いなく消えて正常に戻ります)。
誰もこれに遭遇しましたか? 「afterPoll」が終了すると、成功とエラーのコールバックが何らかの形で消滅しているとしか思えません。しかし、「fubars」はグローバルオブジェクトなので意味がありません。
私は同様の投稿(here)を見ましたが、私の問題を解決していません。どんな洞察力も大変ありがとうございます。
おかげ
が、私は疑問に思います。 'afterPoll = _.bind(fbars.fetchS、fbars);を実行するとどうなりますか? afterPoll(); '? – hyperslug
コンソールウィンドウを開いて、例外が発生していないかどうかを確認してください。 –
コールバックがまったく呼び出されないか、またはコールバックが機能しないかどうかを明確にする必要があります。私の賭けは、それらが呼び出されていることですが、彼らは正しい "this"を持っていないので動作しません。また、コールバックで現在のオブジェクトを "this"として設定するにはbindまたはbindAllを使うべきです。 /documentcloud.github.com/underscore/#bindAll – dira