Since you can control the model, the documentation has an example here.
Transform your model to look like:
var animals = [
{name: "great dane", subcat: "Dogs"},
{name: "lab", subcat: "Dogs"},
{name: "tabby", subcat: "Cats"},
{name: "black", subcat: "Cats"}
];
// and put it in the $scope
$scope.animals = animals;
And the select would look like:
<select ng-model="..." ng-options="a.name group by a.subcat for a in animals">
The selection will be the entire animal object with name
and subcat
properties.