在ng-table中单个文本框搜索

时间:2017-07-10 16:13:35

标签: angularjs search ngtable

我在我的应用中列出的用户使用ng-table

enter image description here

这是我的表,我可以单场一次。但我想用单个字段

搜索多个键

我有一系列值var search = ['Suhail', 'User']; 我想在数据中搜索这个数组

例如: - Suhail,用户喜欢

function getUsers(params) {
        var data = { page: params.page(), count: params.count() };
        if (!users.length) {
            var getUsersCallBack = userService.getUsers(data);
            return getUsersCallBack.then(function (response) {
                var responseJson = angular.fromJson(response.data);
                vm.out = responseJson.data;
                users = vm.out.invitations.concat(vm.out.users);
                users.forEach(function (user, index) {
                    user.statusName = status[user.status];
                    user.invitation = (index < vm.out.invitations.length) ? "Pending" : "Accepted";
                    user.roleName = vm.userRoles[user.role];
                }, this);
                vm.tableBasic.total(users.length);
                var orderedData = vm.search ? $filter('filter')(users, vm.search) : users;
                vm.resultNotFound = orderedData.length ? false : true;
                return (orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
            });
        }
        else {
            var searchArr = vm.search.$.split(";");
            var orderedData = vm.search ? $filter('filter')(users, vm.search) : users;
            vm.resultNotFound = orderedData.length ? false : true;
            vm.tableBasic.total(orderedData.length);
            return (orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
        }

    }

    vm.tableBasic = new NgTableParams({
        page: 1,
        count: 5
    }, {
            counts: [],
            filterDelay: 300,
            getData: getUsers
        });

1 个答案:

答案 0 :(得分:1)

只需使用in-build $过滤器的角度。 您拥有所有表数据的对象。对该变量应用角度过滤器,然后在表格中显示响应。

$scope.loadTable = function(){
        $scope.data = $scope.searchText ? $filter('filter')($scope.table_data, $scope.searchText) : $scope.table_data;
        $scope.tableParams = new NgTableParams({},{dataset: $scope.data});
    }

    $scope.clearSearch = function(){
        $scope.searchText = '';
        $scope.loadTable();
    }

在提交搜索按钮时调用 loadTable 函数,并在清除过滤器并重新加载表格数据时调用 clearTable 函数。