JSFiddle - React, Tailwind, and code Playground

by Eric Howe

HTML

<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>

JavaScript

function dump(rs) {
    console.log('-----');
    rs.each(function(m) {
        console.log(m.id + ' ' + m.get('offers'));
    });
}

var Request = Backbone.Model.extend({});

var Requests = Backbone.Collection.extend({
    model: Request,
    initialize: function() {
        this._order_by_id = this.comparator;
    },
    comparator: function(ab) {
        return -ab.id;
    },
    order_by_offers: function() {
        this.comparator = this._order_by_offers;
        this.sort();
    },
    order_by_default: function() {
        this.comparator = this._order_by_id;
        this.sort();
    },
    _order_by_offers: function(ab) {
        return ab.get('offers');
    }
});

var rs = new Requests();
rs.add({ id: 1, offers:  6 });
rs.add({ id: 2, offers: 11 });
rs.add({ id: 3, offers:  1 });
dump(rs);
rs.order_by_offers();
dump(rs);
rs.order_by_default();
dump(rs);