Backbone sorting Collections

by johnwun

HTML

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

JavaScript

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

var Books = Backbone.Collection.extend({
    model:Book,
    comparator: function(a,b){
       var year = a.get('year') -b.get('year');
        if(year === 0){
            return a.get('title')<b.get('title') ? -1 : 1;
        }else{
            return year;
        }             
    }
});
        
var books = new Books();

books.add({title:"Book A", year: 2011});
books.add({title:"Book C", year: 2012});
books.add({title:"Book A", year: 2012});
books.add({title:"Book B", year: 2012});
books.add({title:"Book C", year: 2010});
books.add({title:"Book A", year: 2008});

console.log(books.pluck('title'));
console.log(books.pluck('year'));