Sorting dropdown alphabetically in AngularJS
Angular has an orderBy filter that can be used like this:
<select ng-model="selected" ng-options="f.name for f in friends | orderBy:'name'"></select>
See this fiddle for an example.
It's worth noting that if track by
is being used it needs to appear after the orderBy
filter, like this:
<select ng-model="selected" ng-options="f.name for f in friends | orderBy:'name' track by f.id"></select>
You should be able to use filter: orderBy
orderBy
can accept a third option for the reverse
flag.
<select ng-option="item.name for item in items | orderBy:'name':true"></select>
Here item is sorted by 'name' property in a reversed order. The 2nd argument can be any order function, so you can sort in any rule.
@see http://docs.angularjs.org/api/ng.filter:orderBy
var module = angular.module("example", []);
module.controller("orderByController", function ($scope) {
$scope.orderByValue = function (value) {
return value;
};
$scope.items = ["c", "b", "a"];
$scope.objList = [
{
"name": "c"
}, {
"name": "b"
}, {
"name": "a"
}];
$scope.item = "b";
});
http://jsfiddle.net/Nfv42/65/