underscore tutorial traductor react network meaning backbone javascript backbone.js backbone-events backbone-model

javascript - tutorial - Forma correcta de vincular mĂșltiples cambios de atributos a un modelo Backbone.js



github backbone (2)

Tengo el siguiente código, donde ato un cambio a un solo atributo "attribute_1".

var Mine = Backbone.Model.extend({ initialize: function() { this.bind("change:attribute_1", function() { console.log(''changed!''); }); } });

¿Cómo puedo unir dos atributos? Esto no funciona:

var Mine = Backbone.Model.extend({ initialize: function() { this.bind("change:attribute_1, change:attribute_2", function() { console.log(''changed!''); }); } });

Esto tampoco lo hace:

var Mine = Backbone.Model.extend({ initialize: function() { this.bind("change:attribute_1 change:attribute_2", function() { console.log(''changed!''); }); } });


A partir de Backbone.js 0.9.0, la función bind() (que ha sido renombrada a on() ) admite una lista de eventos delimitada por espacios:

model.on("change:title change:author", ...) // equivalent to model.bind("change:title change:author", ...)


No sé si existe una función de "enlace masivo" (podría abrir una solicitud de función para ella, parece útil).

Puedes unirlos por separado:

var Mine = Backbone.Model.extend({ initialize: function() { var listener = function() { console.log(''changed''); }; this.bind("change:attribute_1", listener); this.bind("change:attribute_2", listener); } });

O puede escuchar todos los cambios (y luego filtrar en el oyente):

var Mine = Backbone.Model.extend({ initialize: function() { var listener = function() { console.log(''changed''); }; this.bind("change", listener); } });