Объявите "availableItems" как переменную в контроллере и используйте его так:
g in availableItems
, а не
g in model.availableItems
Полный код:
<!DOCTYPE html>
<html lang="en-US">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.searchTerm = "";
$scope.availableItems = [
{
name: '1',
config: {
group: '2'
}
},
{
name: '4',
config: {
group: '3'
}
},
{
name: '5',
config: {
group: '1'
}
}
];
});
</script>
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<select ng-model="searchTerm" size="20" >
<option value=null>Default</option>
<option ng-repeat="g in availableItems | orderBy:'config.group'" value="{{g.config.group}}">{{g.config.group}}</option>
</select>
<p>Selected item is: {{searchTerm}}</p>
</div>
</body>
</html>