var <%= plural_object_name %>View = Backbone.View.extend({ events: { 'click button.new': 'addNew' }, template: JST['<%= plural_underscore_name %>/list'], initialize: function() { _.bindAll(this, 'render', 'addOne', 'addAll', 'addNew'); this.collection.bind('refresh', this.addAll); this.render(); this.collection.fetch() }, render: function() { $(this.el).html(this.template()); return this; }, addOne: function(model) { var view = new <%= object_name %>View({model: model}); this.$('.list').append(view.render().el); }, addAll: function() { this.collection.each(this.addOne); }, addNew: function() { var facility = new <%= object_name %>(); this.collection.add(facility); this.addOne(facility); } });