AngularJS orderBy function being ignored in ng-repeat

The orderBy function is being completely ignored. I've added a console.log at one point for testing and the function isn't even being called. The data is still displayed but is unordered.

HTML Code

<div id="tabs">
    <a ng-repeat="tab in tabs | orderBy:tabordinal" id="tab-{{tab.tab_id}}" class="{{getClasses(tab)}}" ng-click="tabclick(tab)">{{tab.label}}</a>
</div>

JS Function

$scope.tabordinal = function (tab) {
    return $scope.taborder.indexOf(tab.tab_id);
};

Everything else is set up correctly, (i.e. ng-click's work properly, the data is bound properly, and filters are working on the other elements.

A few things...

  1. orderBy takes a string, or an expression that returns a string. That string should be the name of a property you want to order by on the list of objects you're ordering. So if the objects in your array have properties like [ { 0: 'foo', 1: 'bar', '2': 'blah' } ], then you're good to go, I guess. But I doubt they're structured like that.
  2. orderBy:tabOrdinal() if your expression is a function, as yours is in the original post, you need that ().

Outside of that, if you provide a fiddle, I can give you more help.