0

私はバックボーンコレクションを持っており、状況によっては、次のようにしてコレクションにさらに多くのモデルをフェッチしています。

collection.fetch({data: {...}, add: true});

新しいメンバーが到着したときに再レンダリングされるコレクションのビューが必要です。add:trueパラメータが原因で「リセット」イベントが発生しないため、2つのオプションが表示されます。

  1. this.render関数をコレクションの「add」イベントにバインドします。これは動作しますが、サーバーから到着した新しいモデルごとにレンダリング関数が呼び出されるようになります。
  2. フェッチパラメータとしてsilent:trueを渡し、次の行でthis.render()を明示的に呼び出しますが、次の行ではまだデータが到着していないため、古いデータで呼び出された関数をレンダリングします。

この問題を解決する他の方法は見つかりませんでした:(この場合はどうすればよいですか?

4

1 に答える 1

2

オプションとしてコールバックをfetchメソッドに渡しsuccess、ajax操作が成功した後に完全な再レンダリングをトリガーすることもできます(これが好ましい方法である場合)。

collection.fetch({data: {...}, add: true, success: function() { ... } }); 

//または関数への参照-ドリルを取得します

于 2012-07-17T13:04:30.393 に答える