2011-12-21 11 views

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