/examples/backbone/js/collections/todos.js
JavaScript | 41 lines | 19 code | 9 blank | 13 comment | 1 complexity | 69e185f6f511a7ec13a980c1f671fbdf MD5 | raw file
- /*global Backbone */
- var app = app || {};
- (function () {
- 'use strict';
- // Todo Collection
- // ---------------
- // The collection of todos is backed by *localStorage* instead of a remote
- // server.
- var Todos = Backbone.Collection.extend({
- // Reference to this collection's model.
- model: app.Todo,
- // Save all of the todo items under the `"todos"` namespace.
- localStorage: new Backbone.LocalStorage('todos-backbone'),
- // Filter down the list of all todo items that are finished.
- completed: function () {
- return this.where({completed: true});
- },
- // Filter down the list to only todo items that are still not finished.
- remaining: function () {
- return this.where({completed: false});
- },
- // We keep the Todos in sequential order, despite being saved by unordered
- // GUID in the database. This generates the next order number for new items.
- nextOrder: function () {
- return this.length ? this.last().get('order') + 1 : 1;
- },
- // Todos are sorted by their original insertion order.
- comparator: 'order'
- });
- // Create our global collection of **Todos**.
- app.todos = new Todos();
- })();