The easiest way is to wrap the result in ArrayProxy , which is sorted by the same sortProperties values. Sort of,
filteredContent: function(){ var result; if (!this.get('nameFilter')) { result = this.get('content'); } else { var nameRegEx = new RegExp(this.get('nameFilter'), 'i'); result = this.filter(function(item) { return item.get('name').search(nameRegEx) !== -1; }); } var sortedResult = Em.ArrayProxy.createWithMixins( Ember.SortableMixin, { content:result, sortProperties: this.sortProperties } ); return sortedResult; }.property('nameFilter', '@each.name')
Here is updated jsbin .
Another way is to create a filteredContent explicit ArrayProxy and filter / sort.
source share