JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
Debe visualizar el resultado del script en la consola.
JavaScript
(function(){
// Crear modelo
var DesarrolladorModel = Backbone.Model.extend({
initialize: function(){
console.info("Nuevo modelo de: DesarrolladorModel");
this.on("change:editor", function(){
console.log("Has modificado el editor");
});
// Evento a la escuha del error
this.on("error", function(model, error){
console.log(error);
});
},
defaults:{
nombre: "Pepito Perez",
edad: 24,
lenguajes:[]
},
addLenguaje: function(nuevoLenguaje){
var array_lenguajes = this.get('lenguajes');
array_lenguajes.push(nuevoLenguaje);
this.set({lenguajes:array_lenguajes});
},
// Funcion de validacion
validate: function(attributes){
if(attributes.editor == "Dreamweaver"){
return "Dreamweaver no es un editor permitido!";
}
}
});
// Crear instancia
var desarrollador = new DesarrolladorModel;
// Crear otra instancia cambiando valores
var desarrollador2 = new DesarrolladorModel({
nombre: "Mario marito",
edad: 19,
lenguajes: ["Javascript", "C"],
editor: "Sublime Text 2"
});
// Agregando atributos posteriormente
desarrollador.set({editor: "Notepad++"});
//Intentamos realizar nuevamente el cambio de editor
desarrollador.set({editor: "Dreamweaver"});
// Agregar nuevo lenguaje
desarrollador.addLenguaje("Python");
console.dir(desarrollador.attributes);
})();