2011-12-21 16 views

Respuesta

17

Puede pasar la colección a la vista al crear una instancia, y luego puede hacer que la vista se vincule al evento add en la colección en el método de inicialización. evento

Aquí está un ejemplo de código

MyView = Backbone.View.extend({ 
    initialize: function() { 
    this.collection.bind('add', this.onModelAdded, this); 
    }, 

    ...other view functions 

    onModelAdded: function(addedModel) { 
    //do something 
    } 
} 

y así es como se pasa la colección en cuando se instancia la vista

var view = new MyView({ collection: myCollection }); 
3

Hay que vincular a su vista para escuchar en el "añadir" de su colección:

var MyView = Backbone.View.extend({ 
    initialize: function(){ 
     this.collection.bind('add', this.somethingWasAdded, this) 
    }, 
    somethingWasAdded: function(){ 

    } 
}); 
new MyView({collection: myCollection}) 
11

Después de ver. 0.9.9 (agregado el 13 de diciembre de 2012) se recomienda usar listenTO.

En línea con esto:

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