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