Backbone.js - Nuevos registros
Hola Nuevas Criaturas,
Backbone distingue nuevos registros con la propiedad id
. En éste seguimiento de Backbone trataremos siempre con el mismo ejemplo de los candidatos, así que, creamos nuestra clase.
var Candidato = Backbone.Model.extend({
defaults: {
votos: 0
}
});
Si en el registro existe un campo id
, entonces el registro es nuevo. Veamos un primer ejemplo sin dicho campo:
var candidato = new Candidato({ nombre: 'EPN', partido: 'PRI' });
// { nombre: 'EPN', partido: 'PRI', votos: 0 }
Backbone cuenta con un forma de validar si el registro es nuevo. Se trata de la funcion isNew
. Lo usamos de la siguente manera.
candidato.isNew();
// Devuelve *true* porque el registro aún no tiene `id`.
Creamos otro candidato pero con un campo id
.
var candidato = new Candidato({ id: 1, nombre: 'EPN', partido: 'PRI' });
// Ahora comprobamos
candidato.isNew(); // *false* porque el registro ya tiene un `id`
Si navegamos hacia el codigo de Backbone hasta la funcion isNew
, nos encontraremos que comprueba si existe el campo id
en el registro.
// A model is new if it has never been saved to the server, and lacks an id.
isNew: function() {
return !this.has(this.idAttribute);
},
No se preocupen, más adelante hablaremos de ésto, pero se los muestro para que vayamos adaptándonos a las entrañas de su código.
Como podemos observar, distinguimos fácilmente un nuevo registro.
De esta forma, también Backbone internamente puede distinguir si actualizar o guardar el registro. Esto es útil cuando traemos datos por AJAX
. Los registros al venir desde el server ya están guardados a nuestra base de datos. Por lógica, todos los registros traerán un campo id
.
En ocasiones el id
no se llamará como tal. Podríamos darle otro nombre.
En la próxima veremos como cambiar el campo id
por el que querramos.
Bendiciones!