l'option sélectionnée ne fonctionne pas à partir d'AngularJS modèle

Je suis nouveau sur AngularJS, de sorte qu'il peut être vraiment simple, mais je n'arrive pas à le comprendre. Le problème n'est pas dans le AngularJS code lui-même, mais je suis sûr que c'est en quelque sorte lié, parce que je l'ai essayé dans un blanc pur HTML de la page de test, et il a travaillé, comment il est censé.

headers.html:

<table>
<thead>
    <tr>
        <td colspan="2" align="right">
            Sort headers by:
            <select ng-model="sortHeaders">
                <option value="rating">Rating</option>
                <option value="id" selected>ID</option>
            </select>
        </td>
    </tr>
    <tr>
        <th>Rating</th>
        <th>Header</th>
    </tr>
</thead>
<tbody>
    <tr ng-repeat="header in headers | filter:search | orderBy:sortHeaders">
        <td>{{header.rating}}</td>
        <td>{{header.title}}</td>
    </tr>
</tbody>

Le problème ici est, comme le dit le titre, avec <option value="id" selected> pas être sélectionné au chargement de la page, la façon dont il est censé être.
headers.html est, évidemment, un modèle de sortie de données. Et il fait le travail parfaitement, sauf pour ce selected problème.

Il est chargé de la headers_app.js:

var headersApp = angular.module('headersApp', []);

headersApp.directive('headers', [function () {
return {
    restrict: 'E',
    controller: function($scope, $http) {
        $http.get('/api/headers.json').success(function(data) {
            $scope.headers = data.headers;
        });
    },
    templateUrl: '/templates/headers.html',
    replace: true,
    link: function (scope, element, attrs) {
        console.log('linked headersApp');
    }
};
}]);

et, bien sûr, il y a ce gars à l'intérieur de index.html:

...
<headers>
</headers>
...

Une fois de plus, tout le reste fonctionne comme prévu. Le seul problème est que supposé être sélectionné à l'option n'est pas sélectionnée au chargement de la page.

Des idées?