Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="//jashkenas.github.io/underscore/underscore-min.js"></script>
<script src="//jashkenas.github.io/backbone/backbone-min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var items = [
  {id: 0, name: '1st', age: 40},
  {id: 1, name: '2nd', age: 50},
  {id: 2, name: '3rd', age: 60},
];
// order stored in cookie or localstorage ^^
var sorted = [2, 1, 0];
// our source collection
var collection = new Backbone.Collection(items);
var sortedCollection = _.map(sorted, function (id, item, original) {
  return collection.get(id);
});
var sortedIds = sortedCollection.map(function (item) { return item.id })
console.log(sortedIds);
// my interpretation of a view into this sorted collection
var View = Backbone.View.extend({
  initialize: function () {
    this.render();
  },
  render: function () {
    var ul = this.collection.reduce(function (parent, item){
      var li = document.createElement('li');
      li.innerHTML = item.get('name');
      parent.appendChild(li);
      return parent;
    }, document.createElement('ul'));
    document.body.appendChild(ul);
  }
});
var sortedCollectionView = new View({collection: sortedCollection});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
NickTomlinpro
0viewers