私は数週間Backbone.jsを研究してきましたが、モデル、ルーター、コレクションでビューを使用することに抵抗はありません。
私はまだいくつかの大きなギャップがあります:
id
、cid
、およびidAttribute
間の接続は何ですか?それらは互いにどのように影響しますか?
新しいモデルがIDを取得するのはいつですか?サーバーはそれを割り当てる責任がありますか?モデルのdefaults
に追加する必要がありますか(関数として)。おそらくaddNewModel
関数がそれを行うべきでしょうか?
id
、cid
、およびidAttribute
間の接続は何ですか?それらは互いにどのように影響しますか?
cid と id は両方ともモデルの一意のIDである必要があり、 retrieve モデルに使用できます from コレクション。
この2つの違いは、cid
が、backbone.jsクライアント側によって割り当てられ、モデルがまだサーバーに保存されていないか、おそらく実際のIDを持っていない場合に役立つことです。データベースに保存することすらしていません(おそらく localStorage を使用しています)。 id
属性は、サーバーから取得したモデルのIDである必要があります(つまり、idはdbにあります)。 idAttribute
は、id
属性の更新に使用するサーバーからの「フィールド」をバックボーンに指示します。デフォルトでは、これは「id」に設定されますが、 ドキュメント サーバーが他のものを使用している場合は、それを設定できます(例は「_id」に設定しています)。
新しいモデルがIDを取得するのはいつですか?サーバーはそれを割り当てる責任がありますか?モデルの
defaults
に追加する必要がありますか(関数として)。おそらくaddNewModel
関数がそれを行うべきでしょうか?
server に保存すると、新しいIDを取得する必要があり、プロセスをさらに制御する必要がない限り、手動で(idattribute
に基づいて)設定する必要はありません。
id-モデルの作成時に手動で設定されるか、モデルがサーバーに保存されたときに入力されるID(接続を確認するには、下部の「idAttribute」を参照)。これは、モデルがサーバーからロードまたは更新されるときにサーバーに送信されるIDです。たとえば、モデルPersonの場合、idが123の場合、この呼び出しが行われます。「/ person/123」
cid-固有のIDは、内部使用のためにバックボーンモデルを設定します
idAttribute-モデルがサーバーに保存されたときに一意のID(デフォルトは "id")として機能するプロパティを決定します。たとえば、サーバー上のモデルの一意のキーは "personId"で定義されるため、fetchが呼び出されますモデルは、サーバー応答を「personId」からバックボーンモデルのidにマップします。
id
はサーバーモデルID、cid
はクライアントIDです。
モデルのid
プロパティは、モデルの属性ハッシュに設定されたid
に基づいて自動的に割り当てられます理想的には、これは、クエリしているリソースの残りのAPIから受け取るIDです。一方、cid
は各モデルに一時的に割り当てられるIDであり、オブジェクトの実際のIDが決定されるまで役立ちます。たとえば、まだ保存されていないコレクションにプッシュされたモデルは、データベースに保存され、実際のIDが生成されるまで、cid
を使用してアドレス指定できます。