JSFiddle - React, Tailwind, and code Playground

by simucal

HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.1.7/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.5.3/backbone-min.js"></script>

JavaScript

(function($) {

    var Todo = Backbone.Model.extend({
        defaults: {
            done: false,
            order: Todos.nextOrder()
        }
    });

    var TodoList = Backbone.Collections.extend({
        model: Todo,

        done: function() {
            _.select(this, function(todo) {
                return todo.get('done');
            });
        },

        remaining: function() {
            _.without(this, this.done());
        },

        comparator: function(todo) {
            return todo.get('order');
        },

        nextOrder: function() {
            if (!this.length) return 1;
            return this.last().get('order') + 1;
        }
    });
    
    var TodoView = Backbone.View.extend({
        tagName: 'li',
    });

})(jQuery);