underscore template backbonejs javascript jquery ajax backbone.js underscore.js

javascript - template - backbonejs github



Backbone.js-id vs idAttribute vs cid (4)

¿Cuál es la conexión entre id , cid e idAttribute ? ¿Cómo se afectan el uno al otro?

Tanto el cid como el id deben ser identificadores únicos para el modelo y se pueden usar para retrieve un modelo from una colección.

La diferencia entre los dos es que el cid es asignado por el lado del cliente backbone.js y es útil si no tienes una identificación real, ya sea porque el modelo no se ha guardado aún en el servidor o quizás ni siquiera estás guardándolo en un db (quizás estés usando localStorage ). El atributo id debe ser el id del modelo que proviene de su servidor (eso es lo que el id está en su db). idAttribute le dice a la red troncal qué "campo" que viene de su servidor debería usar para actualizar el atributo de id . Por defecto está configurado como "id", pero como dice en la documentation si su servidor usa algo más, puede configurarlo como tal (el ejemplo dado es configurarlo en "_id".

¿Cuándo exactamente un nuevo modelo obtiene su ID? ¿El servidor es responsable de asignarlo? ¿Debo agregarlo a los defaults del modelo (quizás como una función)? Tal vez la función addNewModel debería hacer eso?

Deben obtener las nuevas identificaciones cuando se guardan en el server y no debería tener que configurarlas manualmente (en función del idattribute ) a menos que necesite más control sobre el proceso.

Estuve estudiando Backbone.js durante algunas semanas, y me siento cómodo al usar vistas con modelos, enrutadores y colecciones.

Todavía tengo algunos grandes vacíos:

  1. ¿Cuál es la conexión entre id , cid e idAttribute ? ¿Cómo se afectan el uno al otro?

  2. ¿Cuándo exactamente un nuevo modelo obtiene su ID? ¿El servidor es responsable de asignarlo? ¿Debo agregarlo a los defaults del modelo (quizás como una función)? Tal vez la función addNewModel debería hacer eso?


La propiedad id en un modelo se asigna automáticamente en función del id establecido en los atributos de modelo hash. Idealmente, este es el ID que recibe de la API restante para el recurso que está consultando. Por otro lado, cid es una ID asignada temporalmente a cada modelo y es útil hasta que se determine una ID real para el objeto. Por ejemplo, un modelo enviado a una colección que aún no se ha conservado se puede direccionar utilizando cid , hasta que se guarde en la base de datos y se genere una ID real para él.


id - id que se puede establecer manualmente cuando se crea el modelo, o se rellena cuando el modelo se ha guardado en el servidor (ver "idAttribute" en la parte inferior para ver la conexión). Esta es la identificación que se envía al servidor cuando el modelo se carga o actualiza desde el servidor, por ejemplo, para un modelo de persona esta llamada se realizará si id es 123, "/ persona / 123"

cid - ID único establece mi modelo de red troncal para uso interno

idAttribute: esto decide qué propiedad actuará como ID único (el valor predeterminado es "id") cuando el modelo se haya guardado en el servidor, por ejemplo, la clave única de un modelo en el servidor podría definirse por "personId", de modo que cuando se llame fetch model mapeará la respuesta del servidor de "personId" a id en el modelo de red troncal.


id es el id modelo del servidor, cid es la identificación del cliente.

  • modelo de servidor: como Rails Model
  • modelo de cliente: modelo de red troncal