2012-01-12 1 views
1

新しいコレクションを作成すると、fetchが自動的に1回呼び出されます。これは私に「最初のページ」と次のページのURL +特定の数のエントリを与えます。今、私がする必要があるのは、次のページフィールドが未定義になるまで、fetchを繰り返し呼び出すことで、このコレクションに(一度に一度に)取り込むことです。backbone.js collection - サーバからすべての "ページ"を取得するためにフェッチを繰り返し呼び出す

どうすればいいですか? fetchをコールバック(成功)関数で呼び出すと、それはそのONCEだけを呼び出すようです。したがって、次のようになります。

fetch(success: function() { 
if (condition) 
    fetch again 
}); 

(条件がfalseの場合まで)fetchは繰り返し呼び出されません。代わりに、それは一度呼び出され、 "fetch again"部分は成功関数で渡されなかったので、コールバックはありません。

どうすればこの問題を回避できますか?最善のアプローチは何ですか?ありがとう!

答えて

4

関数に名前を付けて、内部呼び出しに渡すだけです。

例(ビューから):

var self = this; 
self.collection.fetch({ success: function success() { 
    if (condition) { 
    self.collection.fetch({ success: success }); 
    } 
}}); 

HEREは一例です。

+0

素晴らしい回答、ありがとう! – user809240

関連する問題