0

I have a simple collection of documents in my backbone app. This collection has a view that contains all the documents and they should be grouped by the month they were created in.

This view has to update in real-time - when I create a new document or modify an existing one, it should be added/moved to correct place in the view.

What would be the best way to achieve this?

4

2 に答える 2

0

バックボーンコレクションには、groupByを含む多数のメソッドがあります。これは、コレクションをグループ化するために使用できます。

ビューはコレクションのイベントをリッスンする必要がresetあるため、コレクションがリセットされた場合(つまり、グループ化されて更新された場合)、ビューはそれに応じてDOMを更新する必要があります。最も単純なソリューションであり、ビューを完全に再レンダリングするだけです。必要に応じて、いくつかの最適化を行うことができます。

于 2012-09-03T08:12:19.013 に答える
0

コレクションのコンパレータメソッドを作成する必要があります(前の回答で提案されているように、groupByを使用するか、ニーズに合ったその他のメソッドを使用します)。次に、ビューが「リアルタイム」で更新されるように、「追加」、「削除」、または「リセット」イベントがトリガーされるたびに、コレクションで render メソッドをトリガーする必要があります。

たとえば、ビューの初期化メソッドでは、それを行う 1 つの方法は次のようになります。

  collection.documents.on "add", @render
  collection.documents.on "remove", @render
  collection.documents.on "reset", @render

比較メソッドの目的は、コレクション要素を常にソートしておくことです。

于 2012-09-03T14:59:03.027 に答える