Search code examples
backbone.js

Have view listen to collection event


I have a view myView and a collection myCollection. When I add a model to myCollection, the add event is triggered by myCollection. How can I have myView listen to that add event?


Solution

  • You can pass the collection to the view when you instantiate it, and then you can have the view bind to the add event on the collection in the initialize method.

    Here's a code example

    MyView = Backbone.View.extend({
      initialize: function() {
        this.collection.bind('add', this.onModelAdded, this);
      },
    
      ...other view functions
    
      onModelAdded: function(addedModel) {
        //do something
      }
    }
    

    And this is how you pass the collection in when you instantiate the view

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