Sort content of ArrayController

http://stackoverflow.com/questions/10498969/sort-content-of-arraycontroller/10500861#10500861

HTML

<script type="text/javascript" >
ENV = {
    CP_DEFAULT_CACHEABLE: true,
    VIEW_PRESERVES_CONTEXT: true
};
</script>
<script src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script src="http://cloud.github.com/downloads/wycats/handlebars.js/handlebars-1.0.0.beta.6.js"></script>
<script src="http://dl.dropbox.com/u/78715770/ember.js"></script>

<script type="text/x-handlebars" >
Will Display and Sort by Age (after 2 sec)<br/><br/>
        
{{#each App.userController}}
    {{#view App.RecordView}}
        {{name}} - {{age}}
    {{/view}}
{{/each}}
</script>

JavaScript

App = Ember.Application.create({
    ready: function() {
        Ember.run.later(this, function() {
            App.get('userController').set('content', [
               Ember.Object.create({ name:"Jeff", age:24 }),
               Ember.Object.create({ name:"Sue", age:32 }),
               Ember.Object.create({ name:"Jim", age:12 })
           ]);
      }, 2000);
        Ember.run.later(this, function() {
            // Make the controller's content sort again in reverse this time
            App.userController.notifyPropertyChange('content');
        }, 4000);
    }
});

App.userController = Ember.ArrayController.create({
    content: [],
    
    contentDidChange: Ember.observer(function(userCtr, prop) {
        if(!Ember.empty(this.get('content'))) {
            console.log('about to begin sort');
            this.sortContent();
        }
        
        this._super();
    }, 'content'),
    
    sort:"desc",
    
    sortContent:function() {
        var content = this.get("content"), sortedContent;

        if (this.get("sort") == "desc") {
            this.set("sort", "asc");
            sortedContent = content.sort( function(a,b){
                return a.get("age") - b.get("age");
            });
        } else {
            this.set("sort","desc");
            sortedContent = content.sort( function(a,b){
                return b.get("age") - a.get("age");
            });
        }

        this.set("content",sortedContent);
    }
});

App.RecordView = Ember.View.extend({});