Чтобы понять, почему ваш код не работает, вы должны сначала понять, как работает фильтр orderBy в angularjs. В вашем ng-повторе фильтр orderBy имеет два параметра sortField и reverseOrder. Чтобы они работали, у вас должен быть контроллер, который имеет две переменные $ scope с именами соответственно sortField и reverseOrder. Первый параметр - определить, какой ключ должен использовать orderBy, чтобы упорядочить ваш массив, а второй - логическое значение, указывающее, будет ли порядок изменен или нет.
В попытке воспроизвести ваш пример я взял на себя смелость использования unix меток времени в моем массиве журналов. Таким образом, в контроллере
$scope.searchText = "";
$scope.sortField = "timestamp";
$scope.reverseOrder = false;
$scope.logs = [
{
timestamp : 2147450400000,
Action : 'bal sal',
AO : 'abcd'
},
{
timestamp : 979840800000,
Action : 'bal sal2',
AO : 'abcd2'
},
{
timestamp : 1579370400000,
Action : 'bal sal2',
AO : 'abcd2'
}
]
$scope.sortBy = function(sortField) {
$scope.reverseOrder = ($scope.sortField === sortField) ? !$scope.reverseOrder : false;
$scope.sortField = sortField;
};
Также в приведенном вами примере они передали имя столбца через функцию. Так что в вашем html вам нужно что-то подобное.
<input type="text" ng-model="searchText">
<table>
<thead>
<th ng-click="sortBy('timestamp')">Time Stamp</th>
<th ng-click="sortBy('Action')">Action</th>
<th ng-click="sortBy('AO')">AO</th>
</thead>
<tr ng-repeat="item in logs | orderBy:sortField:reverseOrder| filter:searchText">
<td>{{item.timestamp | date :'MM/dd/yyyy HH:MM'}}</td>
<td>{{item.Action}}</td>
<td>{{item.AO}}</td>
</tr>
</table>
Надеюсь, это очистит вас от недоразумений.