47

私は Backbone.js を数週間勉強してきましたが、モデル、ルーター、およびコレクションでビューを快適に使用できます。

私はまだいくつかの大きなギャップがあります:

  1. idcid、およびの間の接続は何idAttributeですか? それらは互いにどのように影響しますか?

  2. 新しいモデルが ID を取得するのはいつですか? サーバーはそれを割り当てる責任がありますか? defaultsモデルの に (おそらく関数として)追加する必要がありますか? 多分addNewModel関数はそれをするべきですか?

4

4 に答える 4

60

idcid、およびの間の接続は何idAttributeですか? それらは互いにどのように影響しますか?

cididはどちらもモデルの一意の ID である必要があり、コレクションからモデルを取得するために使用できます。

2 つの違いは、cidbackbone.js クライアント側によって割り当てられ、モデルがまだサーバーに保存されていないか、保存さえしていないために実際の ID がない場合に役立つことです。それをデータベースに追加します(おそらくlocalStorageを使用しています)。属性は、サーバーから取得したモデルのidID にする必要があります (つまり、データベースにある ID です)。idAttributeサーバーからのどの「フィールド」を使用してid属性を更新する必要があるかをバックボーンに伝えます。デフォルトでは、これは「id」に設定されていますが、ドキュメントに記載されているように、サーバーが他のものを使用している場合は、それに設定できます(例「_id」に設定しています。

新しいモデルが ID を取得するのはいつですか? サーバーはそれを割り当てる責任がありますか? defaultsモデルの に (おそらく関数として)追加する必要がありますか? 多分addNewModel関数はそれをするべきですか?

それらはサーバーに保存されたときに新しい ID を取得するidattribute必要があり、プロセスをさらに制御する必要がない限り、( に基づいて) 手動で設定する必要はありません。

于 2012-08-29T02:08:16.450 に答える
7

id - モデルの作成時に手動で設定されるか、モデルがサーバーに保存されたときに入力される ID (接続を確認するには、下部の「idAttribute」を参照してください)。これは、モデルがサーバーからロードまたは更新されたときにサーバーに送信される ID です。たとえば、モデル Person の場合、ID が 123、「/person/123」の場合、この呼び出しが行われます。

cid - 内部使用のためにバックボーン モデルを設定する一意の ID

idAttribute - これは、モデルがサーバーに保存されたときに、どのプロパティが一意の ID (デフォルトは「id」) として機能するかを決定します。たとえば、サーバー上のモデルの一意のキーは「personId」によって定義される可能性があるため、fetch が呼び出されたときmodel は、サーバーの応答を「personId」からバックボーン モデルの id にマップします。

于 2012-08-29T02:09:44.810 に答える