miércoles, 23 de julio de 2014

Backbone (Model)

En esta entrada voy hablar de backbone una libreria MVC para JavaScript, desde la gran separacíon entre el FrontEnd y Backend, estan surguiendo una monton de librerias de para FrontEnd (Backbone, AngularJs, Ember, ...). En esta ocasión voy hablar de Backbone.

Backbone es una librería que nos permite construir apliaciones web en javascript siguiendo el patron MVC. Como bien dice el nombre de la librería nos proporciona la columna vertebral de nuestra aplicación web. De tal modo que la libreria esta formada por 4 clases:


  • Model
  • Collection
  • View
  • Route

Model


Los modelos son los encargados de almacenar los datos de tu aplicación. como simepre vamos a ver un ejemplo que es la mejor manera de verlo.


Usuario = Backbone.Model.extend({
 initialize: function(){
       console.info('Creado un usuario');
 }
});


Con esto ya tenemos una clase del modelo de backbone y ademas se ha hecho una extensión del metodo initialize que escribera por la consola "Creado una usuario",cuando hagamos una instacia de la clase Usuario saldra por consola el mensage del metodo initialize.


var usuario = new Usuario({nombre : 'Pepe', apellidos : 'Perez Lopez'});


Con esto ya tenemos un objecto usuario con unos datos a vamos a ver algunos metodos de la clase Model de backbone:

  • get
  • set
  • change
  • save
  • destroy
   
Los dos primero (get, set) métodos nos permite obtener o modificar el valor de un atributo.


console.log(usuario.get('nombre'));

usuario.set({edad : 19});

console.log(usuario.get('edad'));


El metodo change no permite escuchar cuando se produce un cambio en el modelo


usuario.bind('change:nombre', function(target, valor, options){
   //Podemos acceder a la variable interna
   var old = this.previousAttributes().nombre;
   console.log('Modificado nombre a ' + valor + '. Antiguo valor:' + old);
});

usuario.set({nombre : 'Jose'});


Los últimos métodos (save, destroy) son los encargados de sincronizar el modelo con el servidor, para sincronicar con el servidor hay que rellenar el atributo urlRoot del modelo para saber la direccion donde tiene que hacer la petición backbone.

Una cosa que tenemos que tener muy en cuenta es que backbone nos dice que cada modelo tiene que ser único es decir que tiene que tener una campo identificador 'id', en caso que nuestro modelo no tiene una campo id, podemos indicar a la clase Model de backbone cual es el campo identificador, para eso tenemosq que modificar el valor idAttribute del modelo.

Todo esto es para cuando un modelo tiene el campo identificador (id o idAttribute ) a null, el método save va hacer una llama POST al servidor, en caso de esta relleno se hace un PUT, cuando llamamos al metodo destroy se hace DELETE

Con esto tenemos la base para crear modelos de backbone, os envito a ver todos los métodos que tiene la clase Model de Backbone.

No hay comentarios:

Publicar un comentario