<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example - example-example58-production</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.18/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body ng-app="orderByExample" id="ng-app">
<div ng-controller="ExampleController">
Search : <input ng-model="searchText" type="text" />
<table class="friend">
<tr>
<th><a href="" ng-click="reverse=!reverse;order('name', reverse)">Name</a>
<th><a href="" ng-click="reverse=!reverse;order('phone', reverse)">Phone Number</a></th>
<th><a href="" ng-click="reverse=!reverse;order('age',reverse)">Age</a></th>
<th><a href="" ng-click="reverse=!reverse;order('name-phone-age',reverse)">Some Random Date Time</a></th>
</tr>
<tr ng-repeat="friend in filtered =( friends | filter:searchText )">
<td>{{friend.name}}</td>
<td>{{friend.phone}}</td>
<td>{{friend.age}}</td>
<td>{{friend.formattedDate}}</td>
</tr>
</table>
</div>
</body>
</html>
angular.module('orderByExample', [])
.controller('ExampleController', ['$scope', '$filter', function($scope, $filter) {
var orderBy = $filter('orderBy');
var now = new Date();
var friends = [
{ "name": 'John', "phone": '555-1212', "age": 10, "name-phone-age":now.setMinutes(now.getMinutes() + 30) },
{ "name": 'Mary', "phone": '555-9876', "age": 19, "name-phone-age":now.setMinutes(now.getMinutes() + 30) },
{ "name": 'Mike', "phone": '555-4321', "age": 21, "name-phone-age":now.setMinutes(now.getMinutes() + 30) },
{ "name": 'Adam', "phone": '555-5678', "age": 35, "name-phone-age":now.setMinutes(now.getMinutes() + 30) },
{ "name": 'Julie', "phone": '555-8765', "age": 29, "name-phone-age":now.setMinutes(now.getMinutes() + 30) }
];
angular.forEach(friends, function(friend){
friend.formattedDate = $filter('date')(friend['name-phone-age'],'yyyy-MM-dd HH:mm:ss');
}) ;
$scope.friends = friends;
var reverse = null;
$scope.order = function(predicate, reverse) {
$scope.friends = orderBy($scope.friends, predicate, reverse);
};
$scope.order('name-phone-age',true);
$scope.name = "";
$scope.filtered = $scope.friends;
$scope.$watchCollection('filtered', function(newvalue,oldvalue) {
console.log($scope.filtered.length);
});
}]);