Skip to content

Instantly share code, notes, and snippets.

@skellertor
Last active September 17, 2015 06:21
Show Gist options
  • Save skellertor/ece6f7eda8f5f7be695d to your computer and use it in GitHub Desktop.
Save skellertor/ece6f7eda8f5f7be695d to your computer and use it in GitHub Desktop.
Angular 'orderBy' filter for objects with a nested property you want to order by.
// Create angular app
var app = angular.module('myApp');
// Create custom filter for objects
app.filter('orderObjectByNestedProperties', function() {
return function(items, field, innerField, reverse) {
var filtered = [];
angular.forEach(items, function(item) {
filtered.push(item);
});
filtered.sort(function (a, b) {
a = parseFloat(a[field][innerField]);
b = parseFloat(b[field][innerField]);
return a - b;
});
if(reverse) filtered.reverse();
return filtered;
};
});
// Use custom filter
var orderedArray = $filter('orderObjectByNestedProperties')(unorderedObject, outerProperty, innerProperty, true);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment