AngularJS | orderBy filter pas mis à jour dynamiquement

Je vais avoir des ennuis avec la orderBy filtre en AngularJS. Voici ma configuration:

<li ng-repeat="item in listItems.data | orderBy:order">
    <a ng-click="getRelated(item._id)">{{ item.title }}</a>
</li>

Partie du contrôleur:

$scope.order = 'year';

$scope.listItems = $http.post($scope.url, {'filterType': 'abc', 'letter': $scope.params.letter});

$scope.setOrder = function(order) {
    $scope.order = order;
}

Et enfin les "interrupteurs" je voudrais l'utiliser pour ordonner les données

    <span class="sort--title">Sort by</span>
    <a ng-class="{true:'selected', false:''}[order=='title']" href="" ng-click="setOrder('title')" class="sort--attribute">Title</a>
    <a ng-class="{true:'selected', false:''}[order=='year']" href="" ng-click="setOrder('year')" class="sort--attribute">Year</a>
    <a ng-class="{true:'selected', false:''}[order=='length']" href="" ng-click="setOrder('length')" class="sort--attribute">Length</a>
    <a ng-class="{true:'selected', false:''}[order=='date_added']" href="" ng-click="setOrder('date_added')" class="sort--attribute">Date Added</a>

Quand je clique sur les boutons, la liste n'est pas commandé.
Quand j'ai changer manuellement la première $scope.order valeur, la liste est ordonnée par la propriété. Aussi ng-class est mis à jour correctement. Je suis évidemment raté quelque chose!

source d'informationauteur Teo.sk