Ho una vista myView
e una raccolta myCollection
. Quando I add
un modello su myCollection
, l'evento add
viene attivato da myCollection
. Come posso ascoltare myView
per ascoltare l'evento add
?Avere vista ascolta l'evento di raccolta
10
A
risposta
17
È possibile passare la raccolta alla vista quando si crea un'istanza e quindi è possibile associare la vista all'evento di aggiunta della raccolta nel metodo di inizializzazione.
Ecco un esempio di codice
MyView = Backbone.View.extend({
initialize: function() {
this.collection.bind('add', this.onModelAdded, this);
},
...other view functions
onModelAdded: function(addedModel) {
//do something
}
}
e in questo modo si passa alla raccolta in cui si crea un'istanza della vista
var view = new MyView({ collection: myCollection });
3
Bisogna legare l'immagine per ascoltare il "aggiungi" evento della tua collezione:
var MyView = Backbone.View.extend({
initialize: function(){
this.collection.bind('add', this.somethingWasAdded, this)
},
somethingWasAdded: function(){
}
});
new MyView({collection: myCollection})
11
Dopo la ver. 0.9.9 (aggiunto 13 dicembre 2012) si consiglia di utilizzare listenTO.
In linea con questo:
var MyView = Backbone.View.extend({
initialize: function() {
this.listenTo(this.collection, 'add', this.onModelAdd);
},
onModelAdd: function(model) {
// do something
}
});
var myCollection = new MyCollection();
var myView = new MyView({collection: myCollection});