<!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">

    <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);
      });
      
      
    }]);