Angularjs 复杂对象的过滤与排序

Angularjs 复杂对象的过滤与排序,angularjs,angularjs-scope,angularjs-ng-repeat,angularjs-filter,angularjs-orderby,Angularjs,Angularjs Scope,Angularjs Ng Repeat,Angularjs Filter,Angularjs Orderby,我有一个对象数组,如下所示: $scope.clients = [ { client: { name: 'ABC', age: '25' } }, { client: { name: 'BCD', age: '26' } }, { client: { name: 'CDE', age: '26' } } ]; 以及一个过滤器对象(实际上它被绑定到视图中的ng模型)以过滤,并排列数组对象:

我有一个对象数组,如下所示:

$scope.clients = [
              { client: { name: 'ABC', age: '25' } },
              { client: { name: 'BCD', age: '26' } },
              { client: { name: 'CDE', age: '26' } }
            ];
以及一个过滤器对象(实际上它被绑定到视图中的ng模型)以过滤,并排列数组对象:

 $scope.filterParams = {
                nameSearch: 'ABC',
                order: 'age'
            };
当我尝试通过
客户端更新筛选器时,在列表中找不到任何名称,并且
排序依据也不起作用:

 $scope.updateFilter = function () {
                var filtered;
                filtered = $filter('filter')($scope.clients, { 'client.name' : $scope.filterParams.nameSearch });
                filtered = $filter('orderBy')(filtered.client, $scope.filterParams.order);

                $scope.filteredList = filtered;
            }

 $scope.$watchCollection('filterParams', function () {
                $scope.updateFilter();
            });

这里有人能告诉我筛选和排序列表的正确方向吗?

调用
$filter('orderBy')()时,可以使用函数作为第二个参数。函数的输入参数是要排序的数组项。该函数使用“”,“=”返回要比较的值

此外,您没有对原始数组
$scope.clients
进行排序,而是对筛选结果进行排序,这只是一条记录。我不知道这是不是一个错误


这是。

在我的小提琴中,名为“ABC”的记录已按要求过滤掉,对吗?
function(item){
          return parseInt(item.client[$scope.filterParams.order]);
}