2012-02-13 17 views
1

たとえば、に格納されているItemという名前のbackbone.jsモデルがあります。 Itemには属性dateがあるので、同じパーティションにすべてのアイテムが同じ日付になるように、パーティションItemCollectionにはどのようなアプローチが最適でしょうか?backbone.jsコレクションの項目のグループ化(グループ化されたレンダリングの場合)

最終的に、パーティション化されたデータ構造は、日付でグループ化されたアイテムをレンダリングするはずのビュー(backbone.js)を想定しています。

これにはどのような方法が最適でしょうか?

は、これまでのところ私は、インデックスビューがレンダリングされるときに動的にパーティションを抽出

  1. を検討し、それはおそらく、コレクション/モデルの更新をレンダリングするために、バックボーンのイベントベースのメカニズムの優雅さを破ります。

  2. Headerモデルのインスタンスとして各グループ化ヘッダーを表し、そのパーティションを含むコレクションを添付します。私はどうにかしてHeaderインスタンスに接続されているパーティションをメインのItemCollectionと同期させておく必要がありますが、それはおそらくバックボーンのイベントメカニズムによって管理できます。

これらのアプローチのいずれかが意味をなさないでしょうか?他のアイデア?

PS:グループ化構造は、私のバックエンドのデータモデルに存在しない(と私はそれを導入しないようしたいと思います)、これは、クライアント側でその場で発生する必要があるいくつかのマッピング

答えて

1

それはそうですあなたの2つのオプションのハイブリッドのように実行可能になります。次のように私はおそらくこれに近づくでしょう:

  1. 代わりのHeaderを、あなたはItemCollection大規模のパーティションになり、そのcollectionItemの内部をレンダリングItemGroupモデルを(少しより説明)、持つことができます。
  2. 親ビューをレンダリングするときにパーティション化自体を行うことができます。これはAppViewと呼ばれます。 AppView#renderでは、必要に応じてデータを分割します。 (明示的にデータを分割する方法をを要求していないが、あなたは数行のコードであることを行うためにアンダースコアを使用することができます。)
  3. バインドAppView#renderItemCollectionaddremoveイベントに、いつでも新しいように、アイテムが追加されると、パーティションは再レンダリングされます。
関連する問題