I have the following code. Everything works fine, but I'm trying to figure out how to remove an item from the collection (note: I'm new to Backbone). I checked a few other posts, but I just can understand:
Todos = (function(){ ////////////////////////// // // MODEL // ////////////////////////// var TodoModel = Backbone.Model.extend({ defaults: { item: null } }); ////////////////////////// // // COLLECTION // ////////////////////////// var TodoCollection = Backbone.Collection.extend({ model: TodoModel }); ////////////////////////// // // VIEW // ////////////////////////// var TodoView = Backbone.View.extend({ el: $('#todos'), itemField: $('#new-item'), initialize: function(){ this.el = $(this.el); }, events: { 'submit form': 'addItem', 'click .remove-item': 'removeItem', // Debug 'click #print-collection': 'printCollection' }, template: $('#item-template').html(), render: function(i) { var templ = _.template(this.template); this.el.children('ul').append(templ({item: i})); }, addItem: function(e) { e.preventDefault(); item = this.itemField.val(); // Call render this.render(item); // Clear field this.itemField .val('') .focus(); // Add to collection var newItem = new TodoModel({ item: item }); this.collection.add(newItem); }, removeItem: function(e) { $(e.target).parent('li') .fadeOut(300,function() { $(this).remove(); }); // NEED TO REMOVE FROM COLLECTION... }, printCollection: function(){ this.collection.each(function(item) { console.log(item.get('item')); }); } }); ////////////////////////// // // SELF // ////////////////////////// self = {}; self.start = function(){ new TodoView({collection: new TodoCollection()}); }; return self; });
source share