web-dev-qa-db-fra.com

Backbone.js - id vs idAttribute vs cid

J'étudie Backbone.js depuis quelques semaines et je me sens à l'aise d'utiliser des vues avec des modèles, des routeurs et des collections. 

J'ai encore de gros manques:

  1. Quel est le lien entre id, cid et idAttribute? Comment s’affectent-ils les uns les autres?

  2. Quand exactement un nouveau modèle obtient-il son identifiant? Le serveur est-il responsable de l'attribution? Dois-je l'ajouter à la defaults du modèle (peut-être en tant que fonction)? Peut-être que la fonction addNewModel devrait le faire?

47
Daniel

Quel est le lien entre id, cid et idAttribute? Comment s’affectent-ils les uns les autres?

Les cid _ et id doivent être des identifiants uniques pour le modèle et peuvent être utilisés pour récupérer un modèle de _ une collection. 

La différence entre les deux réside dans le fait que la variable cid est affectée par le côté client backbone.js et est utile si vous ne possédez pas d'identifiant, soit parce que le modèle n'a pas encore été enregistré sur le serveur, soit peut-être même pas. en le sauvegardant sur une base de données (vous utilisez peut-être localStorage ). L'attribut id doit être l'id du modèle provenant de votre serveur (c'est l'id de votre base de données). idAttribute indique au réseau principal quel "champ" provenant de votre serveur il doit utiliser pour mettre à jour l'attribut id; par défaut, il est défini sur "id" mais comme indiqué dans la documentation si votre serveur utilise autre chose, vous pouvez définissez-le sur cela (l'exemple donné est défini sur "_id".

Quand exactement un nouveau modèle obtient-il son identifiant? Le serveur est-il responsable de l'attribution? Dois-je l'ajouter à la defaults du modèle (peut-être en tant que fonction)? Peut-être que la fonction addNewModel devrait le faire? 

Ils devraient obtenir le nouvel identifiant lorsqu’ils sont enregistrés sur le serveur et vous ne devriez pas avoir à le définir manuellement (en fonction de la idattribute) à moins que vous n’ayez besoin de plus de contrôle sur le processus.

58
Jack

id - id pouvant être défini manuellement lors de la création du modèle ou renseigné lorsque le modèle a été enregistré sur le serveur (voir "idAttribute" en bas pour voir la connexion). Il s'agit de l'identifiant envoyé au serveur lorsque le modèle est chargé ou mis à jour à partir du serveur, par exemple pour une personne modèle, cet appel sera effectué si l'ID est 123, "/ person/123".

cid - identifiant unique définir mon modèle de colonne vertébrale pour un usage interne

idAttribute - détermine la propriété qui servira d'identifiant unique (la valeur par défaut est "id") lorsque le modèle a été enregistré sur le serveur. Par exemple, la clé unique d'un modèle sur le serveur peut être définie par "personId". model mappera la réponse du serveur de "personId" à id dans le modèle de réseau principal.

7
3coins

id est l'ID du modèle de serveur, cid est l'ID du client.

  • modèle de serveur: tel que le modèle Rails 
  • modèle client: modèle backbone
1
Ryan Lv

La propriété id sur un modèle est automatiquement attribuée en fonction de la valeur id définie dans le hachage des attributs du modèle. Idéalement, il s'agit de l'ID que vous recevez de l'API restante pour la ressource que vous interrogez. Par ailleurs, cid est un identifiant attribué temporairement à chaque modèle et est utile jusqu'à ce qu'un identifiant réel soit déterminé pour l'objet. Par exemple, un modèle inséré dans une collection qui n'a pas encore été conservée peut être traité à l'aide de cid, jusqu'à ce qu'il soit enregistré dans la base de données et qu'un identifiant réel soit généré.

0
Dhaval Rajpara