Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以告诉ng table根据每页的项目重新分配表中的项目吗?_Javascript_Angularjs_Filtering_Ngtable - Fatal编程技术网

Javascript 我可以告诉ng table根据每页的项目重新分配表中的项目吗?

Javascript 我可以告诉ng table根据每页的项目重新分配表中的项目吗?,javascript,angularjs,filtering,ngtable,Javascript,Angularjs,Filtering,Ngtable,我是一个使用指令的有棱角的新手 TL;博士 是否有任何方法可以告诉ng table在表格加载完成后,根据每页的项目重新分配表格中的项目 长话短说 我有一个项目集合,包括绑定到ng表的子项目,它可以很好地进行分页和每页项目选择。我的问题是,当我尝试应用筛选器时,表会将项目保留在其原始页面上。假设我的表中有5000个项目,分布在500多页上,每个页面包含10个项目。我实现的过滤效果很好,但它会将项目保留在原始页面上,例如,如果一个STId=1826的项目最初放在第4512页,而我过滤1826,则它将

我是一个使用指令的有棱角的新手

TL;博士 是否有任何方法可以告诉ng table在表格加载完成后,根据每页的项目重新分配表格中的项目

长话短说 我有一个项目集合,包括绑定到ng表的子项目,它可以很好地进行分页和每页项目选择。我的问题是,当我尝试应用筛选器时,表会将项目保留在其原始页面上。假设我的表中有5000个项目,分布在500多页上,每个页面包含10个项目。我实现的过滤效果很好,但它会将项目保留在原始页面上,例如,如果一个STId=1826的项目最初放在第4512页,而我过滤1826,则它将保留在该页面上,即使整个集合中没有其他项目。当然,这是因为ng表已经加载,需要重新加载才能工作。但我认为,由于集合已经在客户端的内存中,因此必须有某种方法来重新分发项目

我知道有一个本机ng表过滤器函数,但我只想说,我看不出有任何方法可以使用它

我收集了一些物品:

SigningTasks: [
    {
      "CS": "Init",
      "STId": 6637,
      "CivicNumber": "198301101997",
      "Culture": {
        "CultureId": 1,
        "CountryCode": "SE",
        "LanguageCode": "sv",
        "Name": "Sverige, svenska"
      },
      "Status": "InitDone",
      "DateCreated": "2015-06-26T13:45:13.723",
      "GroupName": "Group1",
    },
    ...
]
和表参数:

vm.tableParams = new ngTableParams({
    page: 1,
    count: 10,
    sorting: {
        DateCreated: 'desc'
    }
},
{
    total: vm.List.length,
    counts: [10, 25, 50, 100, 250, 500, 1000],
    getData: function ($defer, params) {
        var filteredData = $filter('filter')(vm.List, params.filter());
        params.total(filteredData.length);

        var orderedData = params.sorting() ? $filter('orderBy')(filteredData, params.orderBy()) : filteredData;
        $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
    }
});
和一张桌子:

<table ng-table="vm.tableParams">
    <tr ng-repeat="task in $data | filter:vm.filterTasks(vm.CivicNumber)">
    ...
    </tr>
</table>
vm.filterTasks = function (civicNumber) {
    return function (task) {
        var includeItem = true;

        if (civicNumber !== null && civicNumber !== undefined && civicNumber !== "") {
            includeItem = task.CivicNumber.includes(civicNumber);
        }
        return includeItem;
        }
    };