0

最近、自分のページにテーブルを作成するrequirejs/backbonejsモジュールを作成しました。コレクションはデータをフェッチしてJSONで返します。これは、解析してレンダリングしています。この時点までは正常に機能し、テーブルはページ上で美しくレンダリングされます。

データをフェッチするために使用しているAPIでは、時間範囲を渡す必要があります。したがって、テーブルの最初の描画では、MS値を渡して、過去30日間のデータをフェッチします。

また、ページの上部にフィルターセクションがあり、1週間または1か月のいずれかでフェッチするデータの日数を選択できます。

ページ全体を再描画せずにこのフィルターでコレクションを再ロードするにはどうすればよいですか?または、バックボーン/要件を正しく実装していませんか?

4

1 に答える 1

1

バン。あなたの最後のコメントは正確に。

この設定でイベントトリガーを設定する必要はありません。コレクションをフェッチすると、Backboneは自動的にリセットイベントをトリガーします。

ページ全体であるparentViewがあるとします。その親ビューのどこかに、fetch()イベントをトリガーするドロップダウンフィルターがあります。適切なデータ(1週間または1か月)を取得し、コレクションをリセットします。

子ビュー(サブビュー)には、コレクションのリセットをリッスンするイベントリスナーがあります。

// Inside child view
// (the view that houses all the individual model views of the collection)

this.collection.on('reset', this.render, this);

また、コレクションをリセットしたと聞いたときに、単に自分自身を再レンダリングします。

注:サブビューとサブビューのサブビューを作成するビジネスに取り掛かったら、親ビューを削除するときにそれらのサブビューを適切にクリーンアップすることを忘れないでください(つまり、それらがDOMから削除され、イベントリスナーから切り離されていることを確認してください)再バインドされます。)そうしないと、リソースを消費して奇妙な混乱を引き起こす厄介なゾンビビューが表示されます。これは、ここでよくある繰り返しの質問です。;-)

于 2012-09-05T00:20:47.647 に答える