Sortable table columns with AngularJs
Here is my solution. I also wrap the whole thing to a directive. The only dependency is UI.Bootstrap.pagination, which did a great job on pagination.
Here is the plunker
Here is the github source code.
Another very good example of making table sortable
http://jsfiddle.net/vojtajina/js64b/14/
<th ng:repeat="(i,th) in head" ng:class="selectedCls(i)" ng:click="changeSorting(i)">{{th}}</th>
scope.changeSorting = function(column) {
var sort = scope.sort;
if (sort.column == column) {
sort.descending = !sort.descending;
} else {
sort.column = column;
sort.descending = false;
}
};
Updated jsfiddle: http://jsfiddle.net/gweur/
sza is right, you did forget the $scope.sort object, but you are also missing the orderBy filter in your ng-repeat
|orderBy:sort.column:sort.descending
Additionally, you'll need to explicitly pass the column name to the changeSorting() function, like
ng-click="changeSorting('text')"
not sure if there is a different way you can handle this.
Finally, ng-click is the correct syntax for the version of AngularJS you are using.