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);
}
});