2011-07-22 17 views
0

私はbackbone.jsの初心者ですBackbone.jsのコレクション

なぜあなたはコレクションを使いたいのですか?

各モデルに関連付けられたビューはありませんか?

また、モデルコレクションへのイベントボンドは、すべてのモデルに適用されますか?あなたがモデルを入れ子にしているときは、それらを使用

答えて

2

大規模なデータセットで操作する場合は、データセット全体またはサブセットの操作を実行するメカニズムが非常に必要です。 Backbone.jsコレクションクラスでは、このメカニズムが提供されています。コレクションのいくつかの非常に頻繁な使用法は、以下のように概説することができます。

  • データベースからクエリの結果をフェッチしているとします。レコードの構造に対応するモデルを作成し、コレクションを定義し、コレクションインスタンスを作成し、URLを定義し(必要に応じてajaxリクエストをカスタマイズする)、fetchを呼び出します。 これは、モデルの配列を持つ方が有利です。第1に、解析されたjsonデータ構造を反復して各レコードオブジェクトからモデルを作成する方が便利です。 第2に、コレクション全体を一度にサーバーに更新することができます。マリオによって指摘されているように、それは関連するレコードでの作業を非常に便利にします。

  • 第2に、コレクションクラスは、カスタムフィルタリングと並べ替え機能を提供するために関数を簡単に利用できる基本クラスを提供します。

  • たとえば、ビューを持つことができます。データグリッド、木などを使用してコレクションを表します。コーディングに便利で、コレクションを表すビューの観点から考えることもできます。

1

、私はあなたが必ずしも各モデルに関連付けられたビューを持っていますが、ことができませんでしたねhttp://documentcloud.github.com/backbone/#FAQ-nested

を参照してください。最後の部分についてはわからない、おそらく簡単なテストを実行します。

1

コレクションを使用すると、1対多の関係を表現できます。これは、バックエンドのデータストアがドキュメントデータベース(埋め込みドキュメントを持つ)である場合には完璧です。

コレクションを使用して、モデルに対して反復処理を行うこともできます。

モデルは1つのコレクションにしか属せません。データベース内のテーブルのようなコレクションを扱うのは時々ほとんど意味があります。データベースには私は人のテーブルがあります。私のjavascriptでは、私は人々のコレクションを持っています。

(1つのモデルが1つのコレクションにしか属していないのは、コレクションにモデルを追加すると、コレクションがモデルに直接参照を格納するためです。

関連する問題