AngularJS orderBy does not work with track by in ngOptions?
In order to use tracking with filters, the track by
expression needs to be added after the filter.
Try this instead:
user.id as user.name for user in users | orderBy: 'name' track by user.id
The documentation for ngRepeat
mentions this under the "Arguments" section, specifically:
Filters should be applied to the expression, before specifying a tracking expression.
and
For example: item in items | filter:searchText track by item.id is a pattern that might be used to apply a filter to items in conjunction with a tracking expression.